我有下面的jQuery-AJAX代码和一个表单:
<script type="text/javascript">
$(document).ready(function () {
$('form').submit(function () {
form_data = $(this).serializeArray();
$.ajax({
url: "/frontend_dev.php/coche1/update/id/1",
type: "POST",
data: form_data
});
});
return false;
});
</script>
如您所见,我使用的是serializeArray()
,但当我使用serialize()
时,它的工作方式也是一样的。
为什么在这两种情况下都是一样的?我应该使用它们中的哪一个?
我使用symfony作为php框架。如果你需要,我可以提供给你更多的信息。
发布于 2012-10-11 06:47:27
在这种情况下,它们是相同的。但如果不指定类型,那就有很大的不同-- serialize将执行GET,而serializeArray
将执行POST!
发布于 2012-09-07 07:55:42
我注意到在CodeIgniter中,.serialize方法会产生被CodeIgniter的CSRF保护污染的数据(CodeIgniter以某种方式将分号添加到数组键中),而我用.serializeArray提交的表单没有这个问题。
此外,如果你使用复杂的POST名称,例如PHP“name=”,其中$_POST数组中的位置会发生变化,并且不是任意的,那么使用.serialize可能会容易得多,因为你可以更容易地将其转换回PHP数据结构。
https://stackoverflow.com/questions/4235052
复制相似问题