2012-08-09 51 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或閃光物體在舊的瀏覽器