我正在使用.ajax()向服务器发送请求。服务器正在使用 PHP 来处理请求。
根据php urldecode,$_REQUEST已经被解码,加号('+')被解码为空格字符。
我发现 加号符号正在被解码为下划线 ('_') .对于 + 和 %20 都是如此。有什么办法吗?这似乎是意外的行为。
代码示例的价值:
阿贾克斯:
$.ajax({
url: 'mySite.php',
method: 'POST',
data: $(this).serialize()
});
.php:
$myVar = "Veh #";
if (isset($_REQUEST["$myVar"])){
//do stuff
}
//to see request
var_dump($_REQUEST);
var_dump给出
array(1) {["Veh_#"]=> string(1) "6"}
我希望是
array(1) {["Veh #"]=> string(1) "6"}
小提琴手数据发布:
Veh+%23=6
我可能是不正确的,因为我仍在学习 PHP,但我认为这是在 PHP 中使用 GET 和 POST 时的标准行为。
请参阅文档中的此处
http://www.php.net/manual/en/language.variables.external.php
反正我也不知道。
另请参阅此堆栈溢出问题
让 PHP 停止替换 $_GET 或 $_POST 数组中的 '." 字符?
注意:
变量名称中的点和空格将转换为下划线。
(php.net - 外部变量)