【发布时间】:2012-01-05 20:44:16
【问题描述】:
我正在尝试将一组对象从 jQuery/Javascript 客户端脚本发布到服务器端 PHP 脚本。
我仍然对对象数组数据在到达服务器之前应该采用的格式感到困惑。
我创建一个数组来存储 json 对象
var jsonObjects = [];
我将单个 json 对象添加到数组中
var jsonObj1 = {};
jsonObj1.place = "London";
jsonObj1.position = 1;
jsonObjects.push(jsonObj1);
var jsonObj2 = {};
jsonObj2.place = "Melbourne";
jsonObj2.position = 2;
jsonObjects.push(jsonObj2);
..等
然后我尝试通过 ajax 发布这些数据(我在发布之前尝试过字符串化,也尝试过不进行字符串化)
例如
//var data = jsonObjects;
//var data = JSON.stringify(jsonObjects);
jQuery.ajax({
url: "/drupal/menu_item",
type: 'POST',
data: data
dataType: 'json'
});
无论是在 Firebug 的 XHR 选项卡上,它都只显示数据的字符串化版本 例如 [{"place":"伦敦","position":"2"}, {"place":"墨尔本","position":"2"}]
而不是看起来像以前将数据分解为参数的帖子详细信息的样子。当然,除非 PHP 在字符串化状态下查找数据确实有效(?)
我似乎发现了关于如何将一组 json 对象发送到 PHP 的相互矛盾的细节。在执行 ajax 请求时,数据应该处于什么状态? a) 对象的字符串化数组 b) 对象数组 c) 又是别的东西(?)
非常感谢任何帮助澄清这一点:)
谢谢,
罗文
【问题讨论】:
标签: javascript jquery ajax json post