iT邦幫忙

0

C# .Net Core 身分認證過期, Ajax PartialView出現錯誤

Ks 2019-03-18 15:44:19602 瀏覽

請問該如何解決以下的問題:

由於目前使用Ajax來獲取部分檢視View的內容,

但是當使用者的身分認證過期時,原本應獲取的View內容,

卻傳回了登入頁面,預期應該是自動跳轉到登入頁面,而不是回傳登入頁面。

$.ajax({
        type: "GET",
        url: "/Test/TestPartialView",
        data: { something data... },
        error: function (request, status, error) {
    },
    success: function (resp) {
        $("#testDiv").html(resp);
    }
});

1 個回答

0
Homura
iT邦高手 1 級 ‧ 2019-03-19 09:14:40
最佳解答

我最近的專案是這樣寫的
只要進入需要登入的Controller時
但未登入就傳回Header:X-Auth-Failed錯誤等於1
然後在layout的地方每當ajax認證時有錯就會跑這段ajaxError

$(document).ajaxError(function (event, xhr, settings) {
    if (xhr.getResponseHeader("X-Auth-Failed") == "1") {
        top.location.href = '登入頁面';
    }

}
Ks iT邦新手 4 級 ‧ 2019-03-19 17:55:07 檢舉

感謝答复,我這裡測試了幾次,當Token過期的時候,我會拿到登錄頁面的內容,但是狀態:200,也沒有觸發ajax的錯誤。
而是直接取得登錄頁面

Homura iT邦高手 1 級 ‧ 2019-03-19 21:18:54 檢舉

ksg
你要做驗證的Attritube來過濾未登入的人呼叫Method
未登入進到登入的Method不能回應200啊....
應該說你不是從後端導回登入頁
而是要丟回未登入的狀態回去讓ajaxError觸發

我要發表回答

立即登入回答