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 では、応答コンテンツは として返されるため、ヘッダー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