我正在对我的服务器进行Ajax调用,需要发送一个数组。我正在使用JSON对数组进行编码。这导致使用POST请求将此数据发送到服务器:
selection=%5B%221%22%5D
在服务器上,我有这段代码:
echo urldecode($_REQUEST['selection']);
这导致:
[\"1\"]
请注意,请求中有 no 反斜杠。我用Firefox的开发工具检查过它。
反斜杠添加到哪里了?我在这里做错了吗?我不能像这样解码字符串。
这是客户端代码:
$.ajax({
type: "POST",
url: "<my-uri>/rule/add.php",
data: {
selection: JSON.stringify(["1"]) // in reality this is a variable array
}
}).done(function(data){
alert(data);
});
答案 0 :(得分:0)
这是因为您的服务器配置为在引号中添加斜杠。
如果您希望避免这种情况,请转到php.ini
并将magic_quotes_gpc
设置为0
。