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"
}
]