問題:
js中如果同一個onclick綁定了兩個js方法問題,即
<li onclick="f1(),f2()"></li>
兩個方法f1,f2中都分別有一個ajax請求。
測試發現,經常有一個或兩個ajax請求異常,通常是 顯示狀態碼都是200請求成功,但是實際上,瀏覽器收不到返回參數,這就造成js報錯 data is null 等等。
而且,在java后台,往前台寫入json數據的方法也經常會報錯,比如:
flush writer流時出錯620015:APR does not understand this error code
關閉writer流時出錯620015:APR does not understand this error code
java.lang.IllegalStateException:getWriter() has already been called for this response
等錯誤。
走前后台的debugger都未發現問題所在,百思不得姐。
最終解決方法:
將兩個方法 f1,f2中的每個ajax都設置成同步請求。 問題解決,前后台都正常了。
這個問題的啟示:
1、如果 一個onclick觸發了多個方法,那么最好將每個方法中的ajax都設置成同步。
2、如果包含ajax的js方法報錯,而又找不到代碼問題,可以吧ajax加上同步設置來嘗試一下。