2

この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);

私はまだこれを解決できません。すべてのアイデアは高く評価されています。さらに情報を提供する必要がある場合はお知らせください。

4

1 に答える 1

5

ほとんどのブラウザーapplication/jsonは、戻りコンテンツ タイプとして処理しません。それでもjsonを書き込んでiframeから読みたい場合は、応答を「ハッキング」してコンテンツを送り返すことを検討するかもしれませんが、MIMEタイプはtext/html.

于 2012-05-03T14:54:09.793 に答える