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 がサーブレットからの応答の取得に特に失敗する理由はありますか?