我有一个看起来像这样的javascript对象:
var obj = {
"name": "username",
"userid": "9999",
"object1": {
"subObject1": {
"subArray1": [],
"subArray2": []
},
"subObject2": {
"subArray3": [],
"subArray4": []
}
},
"object2": {
"subObject3": {
"subArray5": [],
"subArray6": []
}
},
"array1": [],
"array2": []
};
我试过像这样使用jQuery ajax调用:
$.ajax({
url: "test.php",
type: "POST",
dataType: "text",
processData: false,
data: obj,
success: function(data, status) {
alert("Sucsess");
}
});
问题是PHP没有收到任何东西。 $ _POST变量为空。我不确定我做错了什么。
由于
答案 0 :(得分:4)
首先,在页面上添加JSON2.js
(该页面底部的链接),然后将您的呼叫更改为:
$.post(
"test.php",
data: JSON.stringify( obj ),
function(data, status) {
alert("Sucsess");
});
答案 1 :(得分:1)
尝试jQuery 1.4.1 $.param function被完全重写以支持这样的事情。
答案 2 :(得分:0)
我不相信可以像这样发送数据对象。
如果你想做类似的事情,你必须在发送数据之前序列化它,然后在服务器上反序列化。 HTTP有它的限制。
答案 3 :(得分:0)
为什么不通过使用类似json2库的东西来发送它来将整个对象序列化为JSON,然后通过单个参数发送它?我不知道PHP,但如果没有几十种可用的替代JSON解析器,我会感到震惊。