1

jQuery フォーム プラグインを使用する IE8 に固有の問題があります。

multipart/form-data を介して単一のファイルをアップロードしており、jQuery プラグインを使用してエラー処理を行っています。FF ではすべて正常に動作しますが、IE8 では、エラー処理メソッドで渡される jqHXR オブジェクトは空です (status = 500、text = "Some error message" ではなく、status = 0、text = null など)。私が使用しているコードの一部を次に示します。

HTML フォーム:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<form name=\"myForm\" id=\"myForm\" action=\"uploadServlet\" method=\"POST\" enctype=\"multipart/form-data\">");
<input type=\"file\" id=\"browseBox\" name=\"file1\"/>
<input type=\"submit\" id=\"uploadButton\"/>
</form>

jQuery:

$("#myForm").submit(upload);
$("#myForm").ajaxForm();

function upload() {
    var options = {
    async: false,
    success: uploadSuccessful,
    error: uploadError
}

    $("#myForm").ajaxSubmit(options);
    return false;
}

function uploadSuccessful(data) {
    alert(data);
}

function uploadError(jqXHR, textStatus, err) {
    alert(jqXHR.responseText);
}

前述したように、jqXHR は IE8 では空ですが、FF ではそうではありません。サーブレットは、ユーザーに表示するプレーン テキストで応答します。IE8 がサーブレットからの応答の取得に特に失敗する理由はありますか?

4

2 に答える 2

1

それは私にも起こりました.Fiddlerを実行したとき、ff/ie9/chrome/etcを使用してリクエストがPOSTで送信されていることがわかりましたが、ie8ではGETで送信されます-サーバーから404エラーを返します(私の場合.. 私の解決策は、フォームに method=post を追加することでしたが、すでに書いているようです。fiddler で ff と ie8 からのリクエストを比較して、違いを検索してみてください。

于 2012-10-18T14:12:39.927 に答える
1

JqueryFormsを使用する場合、IE8はファイルフォームをGETリクエストとして送信します...設定する必要があります

type: "post"

あなたのjqueryフォーム設定で。

于 2013-02-28T08:20:12.863 に答える