我想将 json 文件存储到我的 amazon s3 中,然后使用 ajax 请求检索它。不幸的是,似乎 s3 不允许内容类型的应用程序/json ....
我应该将我的文件保存为文本/纯文本,然后用 php 添加标题?
我想将 json 文件存储到我的 amazon s3 中,然后使用 ajax 请求检索它。不幸的是,似乎 s3 不允许内容类型的应用程序/json ....
我应该将我的文件保存为文本/纯文本,然后用 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 对中的元数据“值”从文件属性更改为“应用程序/json”。
为了避免解析 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。