我正在使用 jQuery 执行 AJAX 多部分表单上传。这是一个 CORS 请求。
// performs a multipart form upload
self.upload = function (path, formData) {
return $.ajax({
url: this.createUri(path),
type: "POST",
contentType: false,
processData: false, // otherwise jQuery will convert to application/x-www-form-urlencoded
data: formData,
beforeSend: configureRequest
});
};
服务器返回一个 JSON 响应,其标头设置如下
Content-Encoding gzip
Content-Length 176
Content-Type application/json; charset=utf-8
在 Chrome/Safari 中,响应内容作为 JavaScript 对象返回。根据 jQuery 文档:
dataType:您期望从服务器返回的数据类型。如果没有指定,jQuery 将尝试根据响应的 MIME 类型推断它
在 Firefox 中,响应内容以 a 形式返回,string
因此它似乎忽略了Content-Type
标头。我可以通过设置来解决这个问题,dataType: "json"
但想了解这是否是由我做错的事情引起的,或者是 Firefox 的问题。
从服务器返回的示例 JSON 有效负载:
[
{
"name": "5711b4bc4cdde896.png",
"uri": "http://127.0.0.1:10000/devstoreaccount1/001/5711b4bc4cdde896.png",
"relativePath": "5711b4bc4cdde896.png",
"contentType": "image/png",
"sizeInBytes": 299724,
"lastUpdated": "2013-03-10T23:31:13Z"
}
]