我正在使用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中,响应内容以string
的形式返回,因此它似乎忽略了Content-Type
标头。我可以通过设置dataType: "json"
来解决这个问题,但是想知道这是由于我做错了还是火柴有问题。
从服务器返回的示例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"
}
]