2012-08-09 38 views
1

我有Internet ExplorerjQuery的AJAX上传系统IE probem

这里的问题是AJAX和jQuery脚本的样本,并在其他浏览器工作正常,但在IE它不

的index.html

<form enctype="multipart/form-data" method="post"> 
    <input name="file" type="file" multiple="true" id="file" /> 
    <input type="button" value="Upload" /> or clic "U" 
</form> 

ajax.js

其他
$(':button').click(function(){ 
    var formData = new FormData($('form')[0]); 
    $("#data").html(formData); 
    $.ajax({ 
     url: 'upload.php', //server script to process data 
     type: 'POST', 
     xhr: function() { // custom xhr 
      myXhr = $.ajaxSettings.xhr(); 
      if(myXhr.upload){ // check if upload property exists 
       myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload 
      } 
      return myXhr; 
     }, 
     //Ajax events 
     //beforeSend: beforeSendHandler, 
     success: function(html) { 
      $("#php").html(html); 
      $("#file").val(''); 
     }, 
     error:function(html) { 
      $("#php").html(html); 
     }, 
     enctype: 'multipart/form-data', 
     // Form data 
     data: formData, 
     //Options to tell JQuery not to process data or worry about content-type 
     cache: false, 
     contentType: false, 
     processData: false 
    }); 
}); 

工作正常浏览器,但在OperaIE它不起作用。

这是控制台(F12)erron上IE

SCRIPT5009: 'FormData' is undefined 
ajax.js, line 53 character 9 

我应该怎么做才能解决这个问题?

+0

出版社IE F12,进入控制台标签上传,然后触发你的代码。它应该输出一个错误。将错误粘贴到您的问题 – 2012-08-09 19:06:57

+0

SCRIPT5009:'FormData'未定义 ajax.js,第53行字符9这是​​代码 – 2012-08-09 19:09:29

回答

0

SCRIPT5009:“FORMDATA”未定义ajax.js,行53字符9这是​​代码

假设你的错误就出在这里,移动你的方法FormData你上面贴上面的代码。

实施例:

function FormData (form) { 
    .... 
} 

$(':button').click(function(){ 
    var formData = new FormData($('form')[0]); 
    $("#data").html(formData); 
    $.ajax({ 
     url: 'upload.php', //server script to process data 
     type: 'POST'... 

EDIT

显然,FormData不IE支持。您可能,但是,能够使用jQuery的serialize像这样:

var formData = $('form').serialize(); 
+0

当然可以,但在函数FormData(...)中怎么办?java初始化java ? ?? – 2012-08-09 22:19:44

+0

@ ex3m.al你应该已经有一个这样的功能......也许在你包含的插件中? – 2012-08-10 00:05:22

+0

我没有任何插件exept jquery.min.1.6.js – 2012-08-10 01:17:22

0

FORMDATA类是仅适用于HTML 5和HTML5支持的浏览器的最新版本。

问题是为IE甚至最新有一些安全问题通过ajax上传多个文件,但你可以上传一个文件。

如果u坚持用Ajax上传它能够更好地使用iframe或闪光物体在旧的浏览器