Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 表单包含文件时,Ajax请求在IE10中不起作用_Jquery_Ajax_Internet Explorer - Fatal编程技术网

Jquery 表单包含文件时,Ajax请求在IE10中不起作用

Jquery 表单包含文件时,Ajax请求在IE10中不起作用,jquery,ajax,internet-explorer,Jquery,Ajax,Internet Explorer,我使用jQueryMalsup插件在ajax中发布表单数据。 表单包含文本数据和文件数据(图像上载字段)。 我使用ajaxSubmit()发布表单数据。所有数据都在服务器站点的php中处理 它在铬、FF、IE8、IE9中工作良好。如果我没有选择任何图像上传字段,ajax请求在IE10中运行良好。但是当一个映像被选中时,IE10在其开发工具中显示挂起 您可以在此处测试文件上载功能 我遇到了同样的问题,而我的成功功能却没有 我打电话给ajaxSubmit。最后我看了一下jquery表单插件 代码和

我使用jQueryMalsup插件在ajax中发布表单数据。

表单包含文本数据和文件数据(图像上载字段)。 我使用
ajaxSubmit()
发布表单数据。所有数据都在服务器站点的php中处理

它在铬、FF、IE8、IE9中工作良好。如果我没有选择任何图像上传字段,ajax请求在IE10中运行良好。但是当一个映像被选中时,IE10在其开发工具中显示挂起

您可以在此处测试文件上载功能


我遇到了同样的问题,而我的成功功能却没有 我打电话给ajaxSubmit。最后我看了一下jquery表单插件 代码和第65行强制您的ajaxSubmit使用GET(如果您没有) 指定的form method=“post”。如果您的表单相当大,则获取 将失败。因此,解决方法是在表单上使用method=“post”
元素。

无论表单是通过GET还是POST提交的,IE都无法将文件数据转换为可传输到服务器的文本字符串

为了在不重新加载页面的情况下执行文件发布,您需要以下对象: FormData,XHR.upload,File.files。“XHR”是xmlHTTPRequest对象,“File”是文件选择器的DOM实例

如果以上任何一项不受支持,您可以退回到常规表单帖子:

if (!self.FormData||!xhr.upload||document.getElementById('file').files) {
  document.getElementById('form').submit();
  return;
}
然后按如下方式获取表单数据:

var fd=new FormData();
fd.append('file',document.getElementById('file').files[0]);
xhr.open('POST',...); //complete your Ajax post here
xhr.send(fd); //the form data is sent here, with the file
既然我已经解释了Ajax文件帖子的机制,那么您的插件可能已经在处理不具备2级XHR特性的浏览器了。嵌入插件时,请确保它位于iFrame中。如果要在文件完全上载时通知主页面,请在上载处理程序本身中嵌入JavaScript调用:

parent.doneuploading();
,其中doneuploading是包含页面中定义的JavaScript函数

同样值得注意的是
enctype="multipart/form-data"

在表单标签中。

我可以说,对于IE8和IE9,上传是通过iframe完成的。您可能会看到XMLHttpRequest 2级支持根据malsup插件,当它看到启用了XMLHttpRequest 2级支持时,它会使用该插件。IE10对此表示支持。那么为什么失败呢?我看到另一个插件()也有同样的问题。解决这个问题的方法可能与解决您的问题的方法类似。页面顶部有doctype吗?你有一个元标记指定如何呈现页面吗?@yuvi你看到我在问题末尾共享的malsup测试页面了吗?如果你能在IE10中运行这个例子,你就会明白我在问什么。好吧,酷,它解决了这个问题吗?如果是的话,请你把这个答案标记为接受,这样其他人就可以利用你的帖子了。我的意思是表单方法帖子从一开始就被声明了。所以这不是问题所在。