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

前端之家收集整理的这篇文章主要介绍了为什么在设置jQuery.ajax()的post数据时,serialize()与serializeArray()的效果相同?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有下面这个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框架。如果您需要,我可以为您提供更多信息。

解决方法

如果一个对象/数组通过( .serializeArray()返回),它将通过 $.param()进行序列化。

如果一个字符串被传递(.serialize()返回),它不会做任何进一步的事情。

所以当它们作为data属性传递时,它们具有相同的效果You can find the relevant check here

// convert data if not already a string
    if ( s.data && s.processData && typeof s.data !== "string" ) {
        s.data = jQuery.param( s.data,s.traditional );
    }

你应该使用哪一个?在这里真的没关系,.serialize() makes the same $.param() call,所以他们做同样的工作量。我个人使用.serialize(),因为它只是较少的键入。

猜你在找的jQuery相关文章