我正在尝试发送一个来自包含null
值的对象的请求:
ajax_post("path", {name: "Name", status: null}, callback);
我有自己的方法,URL对对象进行编码。 null
是javascript类型object
,因此最终会在此处显示:
for(var i in data) {
...
if(typeof data[i]=="object") {
if(data[i]==null) {
//HOW TO ENCODE THE NULL VALUE?
}
else
...
}
else
...
}
服务器端生成的$_POST
应包含以下内容:
array(
name => "Name",
status => NULL
)
这是可能的还是我必须在服务器端手动将"NULL"
转换为NULL
?
答案 0 :(得分:0)
您可以使用prefixes区分null v。非null。
因此,如果变量为null
,则发送“0”,如果变量为非空,则发送“1”。然后,当您收到请求时:
答案 1 :(得分:0)
您可以不发送要为空的参数。
在后端,您可能有一些子句可以评估Parameter是否存在。
如果参数不存在,则为空
例如:
for(var i in data) {
...
if(typeof data[i]=="object") {
if(data[i]==null) {
//Dont send parameter so backend evaluates this to null
//unset(data[i]);
} else
...
} else {
...
}
}
答案 2 :(得分:-2)
for(var i in data) {
...
if(typeof data[i]=="object") {
if((data[i]==NULL) || (empty(data[i]))) {
//HOW TO ENCODE THE NULL VALUE?
// echo base64_encode(data[i]);
// echo base64_decode(data[i]);
echo 'NULL';
}
else
...
}
else
...
}
确保所有或NULL都是大写的。否则它们将不是有效的NULL变量。
*未经测试*