我使用自己的 AJAX 代码发送数据,它工作,AJAX 发送 & PHP 代码获取一个变量,但是:
当我尝试发送链接(例如:http ://abc.com/abc++ )或类似文件夹名称的 var时,+它会返回不带+.
AJAX 发送数据&data='+encodeURIComponent(data)+'和 PHP 获取urldecode($data);
+我的问题是如何在不从字符串中删除字符的情况下从 POST 数据中获取 PHP 变量。
我使用自己的 AJAX 代码发送数据,它工作,AJAX 发送 & PHP 代码获取一个变量,但是:
当我尝试发送链接(例如:http ://abc.com/abc++ )或类似文件夹名称的 var时,+它会返回不带+.
AJAX 发送数据&data='+encodeURIComponent(data)+'和 PHP 获取urldecode($data);
+我的问题是如何在不从字符串中删除字符的情况下从 POST 数据中获取 PHP 变量。
rawurldecode()在 PHP 中使用。rawurldecode()不会将加号 (+) 解码为空格urldecode()。
这样,无论您的 JavaScript 将加号字符作为文字字符串+还是作为编码字符串发送%2B,PHP 都会将其解码为加号字符。
+在 URL 中使用时是特殊含义字符并替换空格 ( )。如果你想传递+文字,你也必须对其进行编码(to %2b)。通常,您应该始终传递用于构建 URL 的任何内容urlencode()以避免出现问题。
看看它是怎么回事:
echo urlencode(' + '); // spaces around `+`
给
+%2B+