このJavaScriptコード
$(document).ready(function () {
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: 'api/GradeCheckIn',
debug: true,
onComplete: function (id, fileName, responseJSON) {
alert(responseJSON[0].ValidationErrors[0].ErrorMessage);
}
});
});
Firefox の魅力のように動作します。ファイルはサーバーに送信され、結果がクライアントに返されます。返されるデータはjsonです。
しかし、Internet Explorer では、localhost から GradeCheckIn (2 バイト) を開くか保存しますかというメッセージが表示されます。ファイルをダウンロードしようとしているように。
どうすればこれを解決できますか? Explorer でも Firefox と同じ動作が必要です。
コメントの後に編集:
IE と FireFox では、リクエスト ヘッダーの content-type が異なります。
IE: multipart/form-data; boundary=---------------------------7dc2ec8205b2
Firefox: application/json; charset=utf-8
これは、リクエストが行われたコードで content-type を明示的に設定したにもかかわらずです。
xhr.open("POST", queryString, true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.send(file);
私はまだこれを解決できません。すべてのアイデアは高く評価されています。さらに情報を提供する必要がある場合はお知らせください。