4

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

在我遇到这种情况之前,我的整个过程都运行良好:“SCi+Tec”作为 eventName 变量。这是发送之前的请求数据:

name=Sci+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"

}

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

谢谢!

4

4 回答 4

3

编码你的字符串:

名称=Sci%2BTec&ticketsToWin=1&totalWinners=2

或者更简单:

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

请参阅文档或此问题

于 2013-06-27T19:05:00.047 回答
0

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

URLEncoder.encode(yourString)
于 2013-06-27T19:07:10.480 回答
0

我很确定使用加号而不是空格,就像在 google 搜索中一样,您提供以下查询:

"如何发送电子邮件",

它将在 URL 中显示为:

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

尝试发布它。

于 2013-06-27T19:03:55.947 回答
0

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

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

于 2013-06-27T19:05:01.997 回答