2

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

0 回答 0