用ajax請求,在後台重定向失敗

2021-09-25 16:00:48 字數 1403 閱讀 9551

今天發現,當使用ajax請求時,如果後台進行重定向到其他頁面時是無法成功的,只能在瀏覽器位址列輸入才能夠實現重定向。

需要實現的功能是,後台閘道器攔截請求,看請求中是否存在token.如果不存在就跳轉到登入頁面。因為大多數請求都是使用ajax.一開始發現無法進行重定向,每次都是返回到ajax的結果處理函式。最終的解決辦法如下,需要後台和前端進行處理。

後台:

/**

*功能描述

* @author lgj

* @description 重定向工具類

* @date 2/27/19

*/@slf4j

public class redirecutil

//如果是瀏覽器位址列請求

else

}catch(exception ex)

}/**

*功能描述

* @author lgj

* @description ajax請求時重定向處理

}}

前端處理

第一種方式:使用ajax的complete方法

$.ajax(,

//請求完成呼叫

(xhr, ts)

win.location.href = url;

} },

});})

但是上面有個問題就是,每個ajax都需要編寫 comlete 方法,**復用率低。

第二種方法 : 使用全域性的complete方法

ajax請求:

$("#non-token").click(function () ,

});

全域性處理

注意這引數(event, xhr, settings)不能少,否則會報錯

//每乙個ajax 請求完成之後都會執行。

$(document).ajaxcomplete(function (event, xhr, settings) )

function  redirecthandle(xhr) 

win.location.href = url;

}}

**

ajax後台重定向會返回什麼 ajax重定向跨域

瀏覽器如何對重定向?當瀏覽器請求乙個位址,服務端返回302,瀏覽器會再次請求一次要重定向的url位址 頁面直接請求的響應的重定向位址,當前頁面是要跳轉的 如果用ajax發起一次請求 ajax發起的重定向,當前頁面不會跳轉 服務端返回302,重定向後url的網域名稱跟ajax請求的網域名稱相同,瀏覽器...

用screen 在後台執行程式

運維工作中經常,需要ssh遠端登入到linux 伺服器,執行一些需要很長時間才能完成的任務,由於很多服務進行了基線調整,經常會出現任務沒有執行完成會話就中斷,任務就會被殺掉,一切半途而廢了,這時,我們可以用screen命令解決這個問題 screen是乙個可以在多個程序之間多路利用乙個物理終端的視窗管...

ajax請求後台互動json示例

ajax請求,首先需要伺服器 首先你需要node 其次,進入當前目錄 預設伺服器端口8080 http server 推薦封裝ajax,以及ajax轉碼過來或者轉碼回去後台 1 doctype html 2 html 34 head 5 meta charset utf 8 6 title docu...