将JSON作为POST变量传递时,引号会被转义

时间:2013-06-03 13:25:19

标签: javascript jquery ajax json

我正在对我的服务器进行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);
});

1 个答案:

答案 0 :(得分:0)

这是因为您的服务器配置为在引号中添加斜杠。

如果您希望避免这种情况,请转到php.ini并将magic_quotes_gpc设置为0