FormData对象不通过jQuery AJAX调用提交

我正在使用此脚本从表单中获取所有值,以便为ajax请求做好准备:

function saveDataAjax(){ var fd = new FormData(); var inputs = document.getElementsByTagName('input'); for(i=0;i<inputs.length;i++) { fd.append(inputs[i].name, inputs[i].value); } $.ajax({ url: '/edit.php', data: fd, type: 'POST', dataType: 'html', success: function(data){ alert(data); } }); } 

但是我从jQuery得到一个Type error ,如果我警告fd['inputname']我得到了未定义,所以我想我必须在某处做错事……

Firefox调试器告诉我: NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object @ http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js:2

将以下内容添加到AJAX调用:

  processData: false, contentType: false, 

所以它看起来像:

  $.ajax({ url: '/edit.php', data: fd, type: 'POST', processData: false, //Add this contentType: false, //Add this dataType: 'html', success: function(data){ alert(data); } }); 

这可能不是原因,但只想指出: i在这里是全球性的。 JS的想法是实现全球减排。 应该是var i=...

这个页面可以帮助你… 🙂

       
file