这很奇怪。当我在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