Firefox忽略了AJAX响应的内容类型

时间:2013-03-10 23:45:43

标签: jquery ajax firefox cors

我正在使用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"
    }
]

0 个答案:

没有答案