Ajax POST方法将字符串中的“+”值转换为“”为什么?

时间:2010-01-19 13:16:10

标签: javascript ajax

我无法弄清楚为什么在ajax帖子中“+”符号转换为“”。请解释?

6 个答案:

答案 0 :(得分:4)

这是URL编码的工作原理。如果你想要一个加号它是%2B,但你应该真正逃脱或编码你发送到服务器的数据。在here中输入“a + b c”。

答案 1 :(得分:4)

使用encodeURIComponent()功能将数据转换为请求的有效编码数据:

xhr.open("POST", url, true);
xhr.send(encodeURIComponent(postdata));

答案 2 :(得分:3)

“+”是空格的url编码符号。因此,当您的帖子数据被解码时,“+”将被转换为空格。

答案 3 :(得分:2)

有可能您在URL中使用+符号,并将其正确转换为空格,因为+是空格字符的URLEncoded表示。

运行escape(),无论您将哪些值放入网址,都可以将其转换为网址编码形式。

答案 4 :(得分:2)

这是因为URL Encoding会将空格转换为+,因为空格在网址中无效。

通常,字符会转换为%后跟两个十六进制数字,但使用+代替%20会使网址更具可读性。

如果您将+编码为应该有用的%2B

答案 5 :(得分:1)

这只是标准的网址编码。加号将转换为服务器上的空格。如果你想传递加号,你需要将它作为%2b转义。