未捕获的TypeError:使用新的FormData()通过ajax

时间:2015-10-03 16:37:47

标签: php html ajax twig form-data

我有一张表格:

<form id="myForm" method="post" onsubmit="return ajaxSubmit();">
...
</form>

在提交时称为ajax请求:

data = $('#myForm').serialize();    
$.ajax({
    type: 'post',
    url: 'phpFile.php',
    data: data,
    response: 'text',
    async: true,
    success: function (result) {
        console.log(result)
        $('#element').html(result['products']);
    }
})

控制台日志中的结果是:

{"ok":1,"products":"<span class=\"error\" style=\"display: none\"><\/span>\n<select id=\"productName\" name=\"productId\">\n        <option value=\"37\">osrieu<\/option>\n    <\/select>"}

所以关键&#34;产品&#34;在这个json中是Twig_Environment-&gt;渲染的结果(&#39; htmlFile.html&#39;,[&#39;占位符&#39; =&gt; $变量])。在这种情况下,一切都很好。

但是如果我将数据变量更改为此问题就会出现问题:

data = new FormData($('#myForm'));

在控制台日志中,我得到了这个:

Uncaught TypeError: Illegal invocation
jQuery.param.add @ jquery.js:7499
buildParams @ jquery.js:7551
jQuery.param @ jquery.js:7519
jQuery.extend.ajax @ jquery.js:8021
ajaxAdminPanelSubmit @ jsFile.js:66
onsubmit @ phpFile.php:84

然后重定向到空白页面,在重定向的页面中,我看到的是相同的json:

{"ok":1,"products":"<span class=\"error\" style=\"display: none\"><\/span>\n<select id=\"productName\" name=\"productId\">\n        <option value=\"37\">osrieu<\/option>\n    <\/select>"}

我的问题是 - 为什么Uncaught TypeError:在这种情况下发生非法调用? 这可以解决吗?为什么会发生?

0 个答案:

没有答案