【发布时间】:2010-01-19 13:16:09
【问题描述】:
我不明白为什么在 ajax 帖子中“+”号转换为“”。请解释一下?
【问题讨论】:
标签: javascript ajax
我不明白为什么在 ajax 帖子中“+”号转换为“”。请解释一下?
【问题讨论】:
标签: javascript ajax
使用encodeURIComponent() 函数将您的数据转换为请求的有效编码数据:
xhr.open("POST", url, true);
xhr.send(encodeURIComponent(postdata));
【讨论】:
postdata 将转换所有具有特殊含义的= 和&
这就是 URL 编码的工作原理。如果你想要一个加号,那就是 %2B,但你真的应该对发送到服务器的数据进行转义或编码。在here 中输入“a+b c”。
【讨论】:
"+" 是 url 编码的空格符号。因此,当您的帖子数据被解码时,“+”将转换为空格。
【讨论】:
这是因为URL Encoding 将空格转换为+,因为空格在 URL 中无效。
通常字符会转换为 % 后跟两个十六进制数字,但使用 + 而不是 %20 会使 URL 更具可读性。
如果您将+ 编码为%2B,那应该可以工作。
【讨论】:
您可能在 URL 中使用了+ 符号,它被正确地转换为空格,因为+ 是空格字符的 URLEncoded 表示。
在您输入 URL 的任何值上运行 escape() 以将其转换为 URL 编码形式。
【讨论】:
这只是标准的 url 编码。加号在服务器上转换为空格。如果你想传递一个加号,你需要将它转义为 %2b。
【讨论】: