在PHP GET请求中使用编码+(%2B)时禁止403

时间:2018-07-25 13:53:38

标签: javascript

这很奇怪。当我在GET请求中包含包含双引号和+号的字符串时,似乎出现了 403禁止的错误

变量:

var iname = 'Chevalier de Fleur';

var itemdescription = '"Fleur Synchron" + 1 or more non-Tuner monsters
Once during each of your turns, when your opponent activates a Spell/Trap Card, you can negate the activation and destroy that card.';

我正在通过以下请求

jQuery.getJSON('https://example.org/myphpfile.php?itemname=' + iname + '&itemdesc=' + encodeURIComponent(itemdescription) + '&callback=?',
                            function (values) {

这几乎可以用于我检查的所有9000多个项目,除了此项目。传递上面的URL后,出现 403禁止的错误

我想我已经将其范围缩小为+号上的编码。

请求最终看起来像这样:

https://example.org/myphpfile.php?name=Chevalier%20de%20Fleur&desc=%22Fleur%20Synchron%22%20%2B%201%20or%20more%20non-Tuner%20monsters%0AOnce%20during%20each%20of%20your%20turns%2C%20when%20your%20opponent%20activates%20a%20SpellTrap%20Card%2C%20you%20can%20negate%20the%20activation%20and%20destroy%20that%20card.

在此部分上

&desc=%22Fleur%20Synchron%22%20%2B%20

如果我删除了+符号的%2B,则它可以正常工作。我认为可能与在双引号后跟一个 + 有关,但是我有更多的项目可以做到这一点,而且似乎都没有重复这种行为。

我目前已通过替换替换来解决它(我确实确实不需要+):

itemdescription.replace('+', '' );

因此,尽管它目前正在运行,但我仍然很好奇,并且非常想学习为什么,该命令没有用,因为我确定我可能做错了什么。

服务器信息:

Apache 2.4.34 PHP 5.6.36

0 个答案:

没有答案