我有以下JS对象:
var data_test = { foo: [], bar: [ 'baz' ] };
Run Code Online (Sandbox Code Playgroud)
当我通过jQuery.ajax()
以下提交此对象时:
$.ajax({
url: "test.php",
type: "POST",
data: data_test
});
Run Code Online (Sandbox Code Playgroud)
事实证明只bar
发送了数组,而不是那个foo
.
证明:在test.php中我简单地var_dump
编辑了$_REQUEST
:
array(1) {
["bar"]=>
array(1) {
[0]=>
string(3) "baz"
}
}
Run Code Online (Sandbox Code Playgroud)
是否有可能强制jQuery也提交一个空对象属性?我需要jQuery发送data_test
对象的精确副本,如果它省略了破坏我的逻辑的空值!
enr*_*rez 15
游戏有点(非常)晚,但我想指出,如果您的应用程序已准备好接受JSON,您可以使用JSON.stringify发送空数组:
var data_test = { foo: [], bar: [ 'baz' ] };
$.ajax({
url: "test.php",
type: "POST",
data: JSON.stringify(data_test),
contentType: 'application/json'
});
Run Code Online (Sandbox Code Playgroud)
这应该发布空数组.请注意JSON.stringify
从IE8开始可用,但你总是可以使用json.js填补这个空白.