今天在项目中,遇到了一个问题就是ajax出现的错误,status为302。因为没有见过这个状态值,所以只能一点一点去查。
经过查找我发现,302状态的解释是:(来自百度百科)
在最新版中,名称已经改成found。 总而言之他的结果就是产生一个重定向,是页面重定向到其他地址。
调试了一下午也没有结果,让带我的大哥来也是没法解决后来在网上找打了一点思路:302是一个重定向的指令,所以只要让他不要产生重定向指令就可以了,
沿着这条路我就这一直找,后来终于有所发现。我发现在执行完某一个方法时,context.response的status就会变成302,所以我在这个重定向状态产生之后,就果断
重置了response对象,让他变回原来的200 OK状态,问题就解决了。
下班以后,左思右想想搞明白,就到stackoverflow上一搜,果然就有了结果:在asp.net中,如果给某些类设置权限,就会导致权限验证,从而产生指向登陆界、
面的跳转重定向指令,所以会出现这个状况。所以明显是当初设计没有考虑到后来的修改,但作为bug修改者,也只能做到这样。
所以以后再遇到这个问题就可以有两种解法,1是找到源头,清掉重定向指令,2就是修改架构,调整验证的位置。
附:关于302的简单解决办法(http://www.cnblogs.com/sanshi/archive/2009/07/26/1531440.html)
stackoverflow上关于此问题的解答(http://stackoverflow.com/questions/2800982/ajax-redirect-dilemma-how-to-get-redirect-url-or-how-to-set-properties-for-redi/5115777#5115777)
原文链接:https://www.f2er.com/ajax/164294.html