首页 » Windows » XmlHttpRequest 404报错的原因以及解决办法

XmlHttpRequest 404报错的原因以及解决办法

9450 0

今天碰到一个问题,一个ajax的请求,给了tiandi一个404的错误提示,本地测试,则毫无问题,改的代码是Ecshop礼品卡发放的后台程序,原程序是配置礼品卡对应的可兑换商品时需要选中该礼品卡,这就导致了如果该种礼品卡数量很多,比如1000张的话,分页显示每页20张,虽然每页都有全部选中按钮,但就算如此,也需要翻50页之后才能处理完毕,这样的操作其实很反人类。

于是tiandi将它改成选择该礼品卡中的任意一张,即可配置所有的礼品卡,但是由于原程序是ajax的,所以需要调整一下代码将所有的参数都传递过去,包括1000张礼品卡的ID号,这样导致post的页面相当的长。初步怀疑是URL长度的问题,和同事sky小讨论了一下,他也感觉是同样的问题,于是从这一方面着手下去,发现本地是WAMP环境,而服务器是IIS(关于服务器为啥是windows,而不是linux的问题,tiandi无力吐槽了,tiandi来的时候就已经是windows的生产环境了。。。)

网上查询了一下资料,URL的长度和浏览器也有关系,tiandi用的chrome,支持的长度在8000左右,IIS尼妹的URL限制长度竟然默认只有2048,而这次的ajax提交的url大概是3000-5000之间。好吧,上服务器看IIS的配置,结果发现愣是没发现哪个是配置URL长度的,再次问google,得出的结论是直接改文件,文件位于%windir%\system32\inetsrv\config\applicationhost.config,直接在配置文件里加以下代码:

<system.webServer>
  <security>
   <requestFiltering>
    <requestLimits maxQueryString="40800" />
   </requestFiltering>
  </security>
 </system.webServer>

但是不要乱加,有的config里已经有security,并且也有requestfiltering子项目了,你懂的。。。所以不能直接复制过去,否则IIS奔溃是免不了的。修改是即刻生效的,无需重启IIS。

文章评分2次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2015/01/xmlhttprequest_404_error/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

    没有相关的文章

评论前先开启评论开关: