ajax 偶尔302,关于Ajax 中response出现302的一点见解
今天在項目中,遇到了一個問題就是ajax出現(xiàn)的錯誤,status為302。因為沒有見過這個狀態(tài)值,所以只能一點一點去查。
經(jīng)過查找我發(fā)現(xiàn),302狀態(tài)的解釋是:(來自百度百科)
在最新版中,名稱已經(jīng)改成found。 總而言之他的結(jié)果就是產(chǎn)生一個重定向,是頁面重定向到其他地址。
調(diào)試了一下午也沒有結(jié)果,讓帶我的大哥來也是沒法解決后來在網(wǎng)上找打了一點思路:302是一個重定向的指令,所以只要讓他不要產(chǎn)生重定向指令就可以了,
沿著這條路我就這一直找,后來終于有所發(fā)現(xiàn)。我發(fā)現(xiàn)在執(zhí)行完某一個方法時,context.response的status就會變成302,所以我在這個重定向狀態(tài)產(chǎn)生之后,就果斷
重置了response對象,讓他變回原來的200 OK狀態(tài),問題就解決了。
下班以后,左思右想想搞明白,就到stackoverflow上一搜,果然就有了結(jié)果:在asp.net中,如果給某些類設(shè)置權(quán)限,就會導(dǎo)致權(quán)限驗證,從而產(chǎn)生指向登陸界、
面的跳轉(zhuǎn)重定向指令,所以會出現(xiàn)這個狀況。所以明顯是當(dāng)初設(shè)計沒有考慮到后來的修改,但作為bug修改者,也只能做到這樣。
所以以后再遇到這個問題就可以有兩種解法,1是找到源頭,清掉重定向指令,2就是修改架構(gòu),調(diào)整驗證的位置。
附:關(guān)于302的簡單解決辦法(http://www.cnblogs.com/sanshi/archive/2009/07/26/1531440.html)
stackoverflow上關(guān)于此問題的解答(http://stackoverflow.com/questions/2800982/ajax-redirect-dilemma-how-to-get-redirect-url-or-how-to-set-properties-for-redi/5115777#5115777)
總結(jié)
如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。
本圖文內(nèi)容來源于網(wǎng)友網(wǎng)絡(luò)收集整理提供,作為學(xué)習(xí)參考使用,版權(quán)屬于原作者。
總結(jié)
以上是生活随笔為你收集整理的ajax 偶尔302,关于Ajax 中response出现302的一点见解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诚e赊是什么?
- 下一篇: 一汽修店补胎时故意扎破轮胎多收费!店长回