天天看點

同一個頁面内Ajax過多導緻SendRedirect抛java.lang.IllegalStateException異常

小弟做的一個項目,大量的使用了Ajax。做到一半的時候偶然發現,jsp中的sendRedirect方法抛異常:java.lang.IllegalStateException。 

百度一下,該異常是兩次調用了sendRedirect方法所緻。按照百度出來的方法在SendRedirect之後加上return,再試問題依舊。

考慮到之前運作都一直正常,之間的差別僅僅是寫了一個js方法,懷疑該方法有問題,于是把該方法删掉測試,果然問題解決。但是仔細核對該方法,沒發現任何錯誤。為了測試是否該方法寫的有問題,把之前運作正常的方法直接複制了一遍,改了個方法名就貼上去,結果發現又抛異常了。

這時突然想到,之前在檢查方法是否正确時,把ajax部分删除,就沒有再抛異常,會不會是ajax有問題?但是由于複制的方法之前運作都正常,排除ajax本身寫的有問題。于是,删掉之前運作正常的ajax,再測試,居然運作正常了。至此基本斷定是由于同一個頁面内ajax方法的數量導緻抛異常。

但是如果要減少對ajax的使用,必然要對整個前台頁面架構進行動大手術,于是考慮将所有js方法寫到單獨的一個檔案中,在頁面中進行引用。結果居然運作正常了。

環境:jquery1.8.4,java1.7 tomcat6

js中大概有7、8個ajax方法,尚不知該問題到底是何原因所緻,jquery更新到1.11測試,問題依舊。望各位高手不吝指教。

繼續閱讀