我正在使用.ajax()向服务器发送请求。服务器正在使用PHP来处理请求。
根据php urldecode,$ _REQUEST已经解码,Plus符号('+')被解码为空格字符。
我发现Plus符号正被解码为下划线('_')。对于+和%20都是如此。有没有办法解决?这似乎是意想不到的行为。
代码样本的价值:
AJAX:
$.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”}
fiddler数据发布:
VEH +%23 = 6
答案 0 :(得分:1)
我可能不正确,因为我还在学习PHP,但我认为这是在PHP中使用GET和POST时的标准行为。
请参阅文档
http://www.php.net/manual/en/language.variables.external.php
我不知道这件事。
也看到这个堆栈溢出问题
Get PHP to stop replacing '.' characters in $_GET or $_POST arrays?
答案 1 :(得分:0)
注意:
变量名中的点和空格将转换为下划线。