这是我的 javascript jquery ajax 函数来发送数据。在这里,我将数据附加到 url 以将其发送到服务器。
url = "/login/auth/";
$.ajax({
dataType: "json",
url: url+encodeURIComponent("a+b+2"),
success: function (data, textStatus, jqXHR) {
if (data.login === false)
{
alert("Invalid Password");
} else {
$('.login').hide();
$("body").append(data.html);
}
}
});
在 PHP 中
if (isset($_GET['r']))
{
echo 'r='.$_GET['r'];
return explode('/',rtrim($_GET['r'], '/'));
}
PHP 将其解码为 login/auth/a b 2
最佳答案
这是因为 url 中的 +
符号表示空格。它基本上是 %20
的更短(且更易读)版本。
要发送+
,请像使用任何其他特殊字符一样对其进行编码。编码的+
是%2B
。但实际上,encodeURIComponent 应该已经做到了。您是否可能在 PHP 中对 url 进行了两次解码?
关于javascript - 为什么 PHP 将 url '+' 字符解码为空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269804/