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=...
这个页面可以帮助你… 🙂