jQuery表单文件上传IE8错误响应null

时间:2012-06-27 12:36:42

标签: jquery ajax forms internet-explorer-8 response

我有一个特定于IE8的问题与jQuery表单插件。

我通过multipart / form-data上传单个文件,并使用jQuery插件进行错误处理。在FF中一切正常,但在IE8中,在错误处理方法中传递的jqHXR对象为空(status = 0,text = null等,而不是status = 500,text =“Some error message”)。以下是我正在使用的一些代码:

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);
}

就像我提到的,IE8中的jqXHR是空的,但在FF中却不是这样。 servlet以我向用户显示的纯文本进行响应。任何想法为什么IE8特别无法从我的servlet获得响应?

2 个答案:

答案 0 :(得分:1)

它也发生在我身上,当我运行Fiddler时,我发现使用ff / ie9 / chrome / etc请求是通过POST发送的,但是ie8是使用GET - 它从服务器返回404错误(在我的情况下).. 我的解决方案是在表单中添加method = post,但我看到你已经写过了。 尝试比较来自ffdler的ff和ie8的请求并搜索差异。

答案 1 :(得分:1)

当您使用JqueryForms时,IE8将文件格式作为GET请求发送...您必须设置

type: "post"
在你的jquery表单设置中