Javascript 它';有可能在AmazonS3上存储json吗?

Javascript 它';有可能在AmazonS3上存储json吗?,javascript,json,amazon-s3,Javascript,Json,Amazon S3,我想将json文件存储到AmazonS3中,然后使用ajax请求检索它。不幸的是,s3似乎不允许内容类型application/json 我应该将文件保存为text/plain,然后用php添加标题?我发现了问题。我以错误的方式解析json $.ajax({ url:"https://s3.amazonaws.com/myBucket/myfile.json", type:"GET", success:function(data) { consol

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


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

我发现了问题。我以错误的方式解析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)
        }
    }
})

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

为了避免解析json,请使用ajax的数据类型属性,这里我们希望得到json的响应,因此
数据类型:“json”
将自动为您解析json,并且无需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)
            }
        }
    })
数据类型-您正在告诉jQuery期望得到什么样的响应。 应该是JSON、XML或HTML等,在我们的例子中是JSON


虽然使用内容类型头肯定很好,但它们不是必需的。如果您知道某个文件包含JSON,您可以使用
JSON.parse
解析响应文本。最后,文件包含文本或二进制数据。如何处理数据是客户端必须做出的决定。不幸的是,在一些测试之后,如果我以文本/纯文本形式检索json,那么json的格式似乎不好,因此我无法解析它……这与内容类型无关。JSON是文本。也许你的JSON一开始就无效?也许你是对的。但是当我创建json时,我解析了它,它就可以了。然后我将它存储在s3上,但当我检索时,我无法解析它的传输。。。你确定你真的得到了回应吗?这可能是一个同源策略问题。我认为如果内容类型设置正确,第一个问题会神奇地起作用。第二个是显式解析为JSON(如果修复内容类型,可能会中断)。本例中的键是
content-type