我有一个脚本,它使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!
答案 0 :(得分:3)
编码你的字符串:
名=科学%2BTec&安培; ticketsToWin = 1&安培; totalWinners = 2
或者更容易:
var str = 'name=Sci+Tec&ticketsToWin=1&totalWinners=2';
var encoded = encodeURIComponent(str);
答案 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)