无法通过ajax发送'+'字符

时间:2013-06-27 19:00:13

标签: ajax character

我有一个脚本,它使ajax请求传递3个不同的数据:eventName / ticketsToWin / totalWinners。

我的整个过程完全正常,直到我遇到这种情况:“SCi + Tec”作为eventName变量。以下是发送前请求的数据:

名=科学+ Tec的&安培; ticketsToWin = 1&安培; totalWinners = 2

但是,在PHP方面,如果我转储_GET数组,我有这个:

array(4) {
  ["name"]=> string(7) "Sci Tec"
  ["ticketsToWin"]=> string(1) "1"
  ["totalWinners"]=> string(1) "2"
  ["_"]=> string(13) "1372359516001"

}

名称中缺少“+”字符,这会破坏之后的所有内容。知道为什么吗?!

Thans!

4 个答案:

答案 0 :(得分:3)

编码你的字符串:

  

名=科学%2BTec&安培; ticketsToWin = 1&安培; totalWinners = 2

或者更容易:

var str = 'name=Sci+Tec&ticketsToWin=1&totalWinners=2';
var encoded = encodeURIComponent(str);

请参阅docs或此Question

答案 1 :(得分:0)

我很确定使用网址中的加号代替空格,就像在Google搜索中一样,您提供以下查询:

“如何发送电子邮件”,

它将在URL中显示为:

“如何+ +发送一个电子邮件+”。

尝试发布它。

答案 2 :(得分:0)

在Urls中,查询字符串中的空格会自动替换为加号。因此,当服务器获得Sci + Tec时,它认为应该有一个空间。您需要使用其url编码来逃避它:%2B。

有关Url编码的更多信息:http://www.w3schools.com/tags/ref_urlencode.asp

答案 3 :(得分:0)

你可以使用java url编码或javascript编码器

URLEncoder.encode(yourString)