1

我正在对我的服务器进行 Ajax 调用,并且需要发送一个数组。我正在使用 JSON 对数组进行编码。这导致使用 POST 请求将此数据发送到服务器:

selection=%5B%221%22%5D

在服务器上,我有以下代码:

echo urldecode($_REQUEST['selection']);

这导致:

[\"1\"]

请注意,请求中没有反斜杠。我用 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);
});
4

1 回答 1

0

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

如果您想避免这种情况,请转到您的php.ini并设置magic_quotes_gpc0.

于 2013-06-03T14:00:36.890 回答