得到 403 禁止只发生在 url1 而不是 url2
Posted
技术标签:
【中文标题】得到 403 禁止只发生在 url1 而不是 url2【英文标题】:get 403 forbidden only happens with url1 not url2 【发布时间】:2012-03-12 12:00:53 【问题描述】:我做一个'get'(javascript)
$.get("ME.php?uid="+uid+"&screen="+screen+"&icon="+icot+"&jhtml="+temp+"&F=seticon",function(data)/*doStuff*/);
这个网址可以正常工作,零错误:
http://mysite.com/ME.php?uid=1&screen=custom&icon=hubpages&jhtml=<div id='hubpages' style='position: absolute; left: 818px; top: 31px; z-index: -9; ' class='icon ui-draggable' ><img src='M/hubpages.png'><div class='box'><a href='http://hubpages.com' target='_blank'>hubpages.com</a></div></div>&F=seticon
但是这个请求我得到了 403 禁止:
http://mysite.com/ME.php?uid=1&screen=custom&icon=squidoo&jhtml=<div id='squidoo' style='position: absolute; left: 307px; top: -35px; z-index: -9; ' class='icon ui-draggable' ><img src='M/squidoo.png'><div class='box'><a href='http://squidoo.com' target='_blank'>squidoo.com</a></div></div>&F=seticon
我只是看不出区别,我只有这么多小时才能看到这个而不会发疯!他们是一样的!?早上 6 点 30 分,也许我已经失去理智了……
如果有帮助的话;我在同一个函数中执行这两个函数,在同一行/同一行,该函数对每个 url 执行相同的操作。
【问题讨论】:
【参考方案1】:如果您收到 403 错误,则很可能您的问题出在服务器端。我想这个问题可能与很长的 jhtml 参数有关,您似乎在没有任何编码的情况下传递了该参数。理想情况下,您不会像这样传递 HTML 字符串,但如果它绝对必要,您可以在发出请求之前尝试在 HTML 字符串上使用 encodeURI()
,然后使用服务器端技术的补充方法对其进行解码。
【讨论】:
我会试试你的 encodeURI() 建议。我认为你有点错过了这一点,因为长度与它无关,因为第一个工作 url 比第二个 403 url 长。谢谢 GET 403(禁止)jquery.js:4以上是关于得到 403 禁止只发生在 url1 而不是 url2的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 错误 403.14 - 禁止 - 带有 IIS Express 的 MVC 4
间歇性 HTTP 403 禁止错误调用相同的 Ajax 代码