0

我正在使用 .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 给出

数组(1){[“Veh_#”]=>字符串(1)“6”}

我希望是

数组(1){[“Veh #”]=>字符串(1)“6”}

提琴手数据发布:

车+%23=6

4

2 回答 2

1

我可能不正确,因为我仍在学习 PHP,但我认为这是在 PHP 中使用 GET 和 POST 时的标准行为。

请参阅文档中的此处

http://www.php.net/manual/en/language.variables.external.php

我对此一无所知。

另请参阅此堆栈溢出问题

让 PHP 停止替换 '.' $_GET 或 $_POST 数组中的字符?

于 2013-10-03T22:31:23.923 回答
0

笔记:

变量名中的点和空格被转换为下划线。

php.net - 外部变量

于 2013-10-03T22:35:53.443 回答