14

我想将 json 文件存储到我的 amazon s3 中,然后使用 ajax 请求检索它。不幸的是,似乎 s3 不允许内容类型的应用程序/json ....

我应该将我的文件保存为文本/纯文本,然后用 php 添加标题?

4

3 回答 3

7

我发现了问题。我以错误的方式解析 json。

$.ajax({
    url:"https://s3.amazonaws.com/myBucket/myfile.json",
    type:"GET",
    success:function(data) {
            console.log(data.property)
    }
})

相反,这有效:

$.ajax({
    url:"https://s3.amazonaws.com/myBucket/myfile.json",
    type:"GET",
    success:function(data) {
        var obj = jQuery.parseJSON(data);
        if(typeof obj =='object'){
            console.log(obj.property)
        }
    }
})
于 2013-06-13T13:52:17.590 回答
3

在 AWS S3 控制台中,将 Key:Value 对中的元数据“值”从文件属性更改为“应用程序/json”。

于 2015-12-22T13:15:04.553 回答
1

为了避免解析 json 使用 ajax 的 dataType 属性,这里我们期望响应为 json,因此
dataType: "json"会自动为您解析 json,并且可以在 Success 函数体中直接访问,无需 JSON.parse()。

$.ajax({
        url:"https://s3.amazonaws.com/myBucket/myfile.json",
        type:"GET",
        dataType: "json",    // This line will automatically parse the response as json
        success:function(data) {
            var obj = data;
            if(typeof obj =='object'){
                console.log(obj.property)
            }
        }
    })

dataType - 你是在告诉 jQuery 期望什么样的响应。期待 JSON、XML 或 HTML 等。在我们的例子中是 JSON。

于 2019-12-11T05:52:04.877 回答