jQuery的.ajax正在丢失数据?

时间:2015-04-18 17:18:49

标签: php jquery ajax

好吧,我这几个小时都在摆弄这个并且感到沮丧。 我想用ajax构建一个应用程序表单。我传递了一个带有巨大嵌套数组的关联数组:

[
    "foo": x,
    "bar": y,
     // ...
]

Herex or y看起来像的一个例子(它太大了,无法在此处发布)。它基本上只是一个嵌套数组的对象:

{
    lastModified: 1243245656
    some: x
    other: y
    keys: z
    feed: [ ... ]
    items: [ ... ]
    // ...
}

所以我的关联数组added_toons会这样:

[
    "foo": {
        lastModified: 1243245656
        some: x
        other: y
        keys: z
        feed: [ ... ]
        items: [ ... ]
        // ...
    },
    "bar": {
        lastModified: 1243245656
        some: x
        other: y
        keys: z
        feed: [ ... ]
        items: [ ... ]
        // ...
    },
    // ..
]

问题出在这里:当我在用ajax传递它之前评估我的数组时,一切都很好。一旦我在我的php后端收到它,每个toon内都会丢失数组。例如itemsfeed 我真的不知道发生了什么。

所以我要求一些帮助来解决这个问题。 AFAIK它不应该成为逃避的问题,因为jQuery已经为我做了这个。


我的JS代码

    console.info(added_toons); // everything is fine here
    $.ajax({
        url: '...',
        type: 'post',
        data: {
            'action': 'submit',
             // ...
            'toons': added_toons
        },
        success: function (data, status) {
            // ...
        },
        error: function (xhr, desc, err) {
            // ..
        }
    });

我的PHP代码

<?php
if ($_POST['action'] == 'submit') {
    // when I here evaluate $_POST it contains `toons` 
    // but each `toon` is missing keys
}

1 个答案:

答案 0 :(得分:1)

尝试这种方式为JSON.stringify

设置added_toons
data: {
        'action': 'submit',
         //stringify is important to send array of objects
        'toons': JSON.stringify(added_toons) 
      },

请参阅JSON.stringify()此处https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify