javascript - FormData 对象未通过 jQuery AJAX 调用提交

标签 javascript jquery

我使用此脚本从表单中获取所有值,以便为 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 收到类型错误,如果我警告 fd['inputname'] 我会得到未定义的信息,所以我想我必须做点什么哪里错了...

Firefox 调试器告诉我:NS_ERROR_XPC_BAD_OP_ON_WN_PROTO:对 WrappedNative 原型(prototype)对象@ 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);
       }
   });

关于javascript - FormData 对象未通过 jQuery AJAX 调用提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809016/

相关文章:

javascript - AJAX 请求无法被 PHP 脚本识别为 POST

javascript - 有没有开源库可以在浏览器中使用 Javascript 来整理 Javascript?

javascript - javascript动态 float 窗口

jquery - 使用 JQuery 将元素值传递给 Ajax

javascript - jQuery .load 刷新导致页面缩小

javascript - 如果未选中复选框,则禁用表单提交

javascript - 我需要添加什么代码来反转文本框输入?

javascript - 在 JavaScript 中使用 .JSON

jquery 用淡入/淡出替换表中的行

jquery - 使用 Jquery 删除第二个 <a> 标记后的文本