现象:项目在本地运行正常,发布到客户线上环境后,有些页面的访问不成功,出现如下错误:
谷歌浏览器 F12:net::ERR_EMPTY_RESPONSE
IE浏览器 F12:SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成。
看提示应该是ajax调用的问题,当然我出问题的页面确实是ajax加载的,也确实出问题了,但是查遍ajax,没有任何错误 ,也不是到处能查到的说ajax设置的是同步导致的问题,调整成异步就能解决之类的。
如果真是如此,线上和本地为何会表现不同?所以,ajax报错只是表面,我调用了ajax所以它出错,而本身并不是它的问题。
那么,最后得注意2个环境的差异了:问题正出在这儿!
客户提供的服务器,默认做了http协议防止SQL注入的安全设置,即:请求参数里面不能有SQL语法中的关键敏感词,否则,服务器之间驳回了你的请求!
而对我来说,出问题的页面,恰巧都是传入了一些SQL敏感词,如我上面的错误,只是因为我的参数中有一项参数是 {orderby : "order by id desc"} ,然后导致了整个问题。
知道了问题所在,调整之即可。