我有一个想要随jquery.ajax函数一起发送的对象,但是我找不到任何可以将其转换为我需要的序列化格式的东西。
$.ajax({
type: 'post',
url: 'www.example.com',
data: MyObject,
success: function(data) {
$('.data').html(data)
}
})
MyObject = [
{
"UserId": "2",
"UserLevel": "5",
"FirstName": "Matthew"
},
{
"UserId": "4",
"UserLevel": "5",
"FirstName": "Craig"
}
]
Serialized_format = [
{
"name": "UserId",
"value": "5"
},
{
"name": "UserLevel",
"value": "4"
},
{
"name": "FirstName",
"value": "Craig"
}
]发布于 2011-01-18 04:53:38
因此,我将把我的评论作为答案。如果您想将数组传输到服务器端,可以将其转换为JSON (至少这是imo最简单的方法)。
使用JSON
$.ajax({
type: 'post',
url: 'www.example.com',
data: {paramter: JSON.stringify(MyObject)},
success: function(data) {
$('.data').html(data)
}
});其中parameter是要使用的POST参数的名称。
JSON.stringify会给你一个类似这样的字符串:
'[{"UserId":"2","UserLevel":"5","FirstName":"Matthew"},{"UserId":"4","UserLevel":"5","FirstName":"Craig"}]'在服务器端检索,例如使用PHP和json_decode
$data = json_decode($_POST['parameter']);会给你返回一个对象数组:
Array
(
[0] => stdClass Object
(
[UserId] => 2
[UserLevel] => 5
[FirstName] => Matthew
)
[1] => stdClass Object
(
[UserId] => 4
[UserLevel] => 5
[FirstName] => Craig
)
)我还建议将MyObject重命名为有意义的内容,以反映变量的内容。实际上,你有一个数组,而不是一个对象(是的,我知道数组也是对象)。
发布于 2011-01-18 04:48:52
你不需要序列化,类型为' POST‘的.ajax在'url’参数中将"MyObject“的属性发送给脚本,就像html POST一样。
例如,在PHP中:使用:
$.ajax({
type: 'post',
dataType: 'json',
url: 'www.example.com/receive.php',
data: {
param1: 'test',
param2: 123456
},
success: function(data) {
$('.data').html(data)
}
})在receive.php中,我有$_POST['param1']和$_POST['param2']。
https://stackoverflow.com/questions/4717704
复制相似问题