首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在为jQuery.ajax()设置post数据时,serialize()与serializeArray()具有相同的效果?

为什么在为jQuery.ajax()设置post数据时,serialize()与serializeArray()具有相同的效果?
EN

Stack Overflow用户
提问于 2010-11-21 05:17:25
回答 2查看 6.2K关注 0票数 17

我有下面的jQuery-AJAX代码和一个表单:

代码语言:javascript
复制
<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框架。如果你需要,我可以提供给你更多的信息。

EN

回答 2

Stack Overflow用户

发布于 2012-10-11 06:47:27

在这种情况下,它们是相同的。但如果不指定类型,那就有很大的不同-- serialize将执行GET,而serializeArray将执行POST!

票数 5
EN

Stack Overflow用户

发布于 2012-09-07 07:55:42

我注意到在CodeIgniter中,.serialize方法会产生被CodeIgniter的CSRF保护污染的数据(CodeIgniter以某种方式将分号添加到数组键中),而我用.serializeArray提交的表单没有这个问题。

此外,如果你使用复杂的POST名称,例如PHP“name=”,其中$_POST数组中的位置会发生变化,并且不是任意的,那么使用.serialize可能会容易得多,因为你可以更容易地将其转换回PHP数据结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4235052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档