ajax 發送請求 後端重定向後跳轉失敗

權限攔截很常用,但是遇到了一個問題,使用ajax發送請求時,後端跳轉不成功。

struts2 老項目。 後來研究了下,因爲ajax是異步請求,所以返回的數據當做了普通的文本進行解析了。,

並沒有進行真正的頁面跳轉。

解決辦法就是後端重定向後設置http狀態碼位非200.比如302

然後前端的ajax設置一個全局的error處理方式

  $.ajaxSetUp  可以設置全局的配置項。

 

 error: function (XMLHttpRequesttextStatuserrorThrown) {

             可以解析XMLHttpRequest.responseText 內容或者狀態碼。

                然後進行頁面跳轉。

             比如

   if(XMLHttpRequest.responseText .indexOf("403")>0){

   window.location = https://www.so.com;   //跳轉到的頁面。

}
    
  }

這樣後端就可以直接跳轉了。 

response.sendRedirect("XXXXX");

response.setStatus(302);

有時候僅僅監聽成功的還不行,可能還需要再監聽下成功的。

這個就有點類似於java的攔截器了,收到後端請求後,再統一處理下。

$.ajaxSetup({
   contentType:"application/x-www-form-urlencoded;charset=utf-8",
   complete:function(XMLHttpRequest,textStatus){
   }
});
 

部分參考

https://blog.csdn.net/qq_34845394/article/details/86352170

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章