我有一张表格:
<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:在这种情况下发生非法调用? 这可以解决吗?为什么会发生?