首頁 web前端 js教程 axios怎樣解決302狀態碼問題

axios怎樣解決302狀態碼問題

May 25, 2018 pm 02:15 PM
axios 狀態 問題

這次帶給大家axios怎樣解決302狀態碼問題,axios解決302狀態碼問題的注意事項有哪些,下面就是實戰案例,一起來看一下。

比如說瀏覽器開啟了一個單一頁面(SPA)應用,過了一段時間token(或session)過期了,這個時候頁面上發起Ajax請求之後,後端回到302狀態碼跳到login頁面。我這是使用的是 Vue axios ,發現 axios 無法攔截到 302請求,以下是處理的過程。

思考

google axios 302 handle 看到axios github 上的兩個討論

##• 

https: //github.com/axios/axios/issues/932

•  https://github.com/axios/axios/issues/980

#的結論就是:瀏覽器發送的ajax請求,服務端返回了302狀態碼,瀏覽器會自行跳轉,我們無法透過js 庫(jquery, axios) 直接得到並自訂處理流程,只能等到瀏覽器重定向之後的url獲取相應資訊。

axios 傳送ajax -->

server 回傳302和location -->
瀏覽器請求新的url -->
服務端回傳200 -- >

axios 取得結果

那麼要怎麼解決呢?需要服務端配合解決

Brower (ajax and not auth) -->

server判斷是ajax請求,未登陸,回傳401狀態碼-->
瀏覽器axios 攔截401,並且透過js 跳到/login

#解決

瀏覽器端, axios 增加攔截器

axios.interceptors.response.use((response) => {
  return response;
}, function (error) {
  if (401 === error.response.status) {
    window.location = '/login';
  } else {
    return Promise.reject(error);
  }
});
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
登入後複製
後端程式碼,使用flask框架,看個流程就行,驗證請求是否是ajax 和未登陸,然後返回401狀態碼

from flask import Blueprint, request, jsonify, make_response, abort
from flask_login.utils import current_user, current_app
apibp = Blueprint('api', 'api_bp')
# 主要逻辑
def bp_login_required():
  if not current_user.is_authenticated:
    if request.is_xhr:
      abort(401)
    else:
      return current_app.login_manager.unauthorized()
apibp.before_request(bp_login_required)
@apibp.route("/report/domains/<month>/", methods=["GET"])
def monthly_domains(month):
  return jsonify({})
ref
登入後複製
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

vue的select內建元件使用步驟詳解

React使用時避免重渲染

以上是axios怎樣解決302狀態碼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

處於待機狀態的連線狀態:已斷開,原因:NIC合規性 處於待機狀態的連線狀態:已斷開,原因:NIC合規性 Feb 19, 2024 pm 03:15 PM

「事件日誌訊息中的連接狀態顯示為待機狀態:已斷開連接,原因是符合NIC標準。這表示系統在待機模式下,網路介面卡(NIC)已斷開連接。雖然這通常是網路問題,但也可能由軟體和硬體衝突引起。在接下來的討論中,我們將探討如何解決這個問題。」待機連接斷開的原因是什麼? NIC合規性?如果在Windows事件檢視器中發現「ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance」訊息,這表示您的NIC或網路介面控制器可能有問題。這種情況通常

陌陌狀態怎麼設定 陌陌狀態怎麼設定 Mar 01, 2024 pm 12:10 PM

陌陌這款廣為人知的社群平台,為用戶的日常社交提供了豐富的功能服務。在陌陌上,用戶可以輕鬆分享生活狀態、結交朋友、進行聊天等。其中設定狀態功能讓使用者能夠向其他展示自己當前的心情和狀態,進而吸引更多人的注意和交流。那麼究竟該如何設定自己的陌陌狀態呢,以下就為大家帶來詳細的內容介紹!陌陌怎麼設定狀態? 1.打開陌陌,點擊右下角更多,找到並點擊每日狀態。 2、選擇狀態。 3、即可顯示設定的狀態。

如何查看伺服器狀態 如何查看伺服器狀態 Oct 09, 2023 am 10:10 AM

查看伺服器狀態的方法有使用命令列工具、圖形介面工具、監控工具、日誌檔案和遠端管理工具等。詳細介紹:1、使用命令列工具,在Linux或Unix伺服器上,可以使用命令列工具來查看伺服器的狀態;2、使用圖形介面工具,對於具有圖形介面的伺服器作業系統,可以使用系統提供的圖形介面工具來查看伺服器狀態;3、使用監控工具,可以使用專門的監控工具來即時監視伺服器的狀態等等。

聚類演算法中的聚類效果評估問題 聚類演算法中的聚類效果評估問題 Oct 10, 2023 pm 01:12 PM

聚類演算法中的聚類效果評估問題,需要具體程式碼範例聚類是一種無監督學習方法,透過對資料進行聚類,將相似的樣本歸為一類。在聚類演算法中,如何評估聚類的效果是一個重要的問題。本文將介紹幾種常用的聚類效果評估指標,並給出對應的程式碼範例。一、聚類效果評估指標輪廓係數(SilhouetteCoefficient)輪廓係數是透過計算樣本的緊密度和與其他簇的分離度來評估聚類效

教你如何診斷常見問題的iPhone故障 教你如何診斷常見問題的iPhone故障 Dec 03, 2023 am 08:15 AM

iPhone以其強大的性能和多方面的功能而聞名,它不能倖免於偶爾的打嗝或技術困難,這是複雜電子設備的共同特徵。遇到iPhone問題可能會讓人感到沮喪,但通常不需要警報。在這份綜合指南中,我們旨在揭開與iPhone使用相關的一些最常遇到的挑戰的神秘面紗。我們的逐步方法旨在幫助您解決這些常見問題,提供實用的解決方案和故障排除技巧,讓您的裝置恢復到最佳工作狀態。無論您是面對一個小故障還是更複雜的問題,本文都可以幫助您有效地解決這些問題。一般故障排除提示在深入研究具體的故障排除步驟之前,以下是一些有助於

Java執行緒的五種狀態詳解及狀態轉換規則 Java執行緒的五種狀態詳解及狀態轉換規則 Feb 19, 2024 pm 05:03 PM

深入了解Java執行緒的五種狀態及其轉換規則一、執行緒的五種狀態介紹在Java中,執行緒的生命週期可以分為五個不同的狀態,包括新狀態(NEW)、就緒狀態(RUNNABLE)、運作狀態(RUNNING)、阻塞狀態(BLOCKED)和終止狀態(TERMINATED)。新建狀態(NEW):當執行緒物件建立後,它就處於新建狀態。此時,線程物件已經分配了足夠的資源來執行任務

解決jQuery無法取得表單元素值的方法 解決jQuery無法取得表單元素值的方法 Feb 19, 2024 pm 02:01 PM

解決jQuery.val()無法使用的問題,需要具體程式碼範例對於前端開發者,使用jQuery是常見的操作之一。其中,使用.val()方法來取得或設定表單元素的值是非常常見的操作。然而,在一些特定的情況下,可能會出現無法使用.val()方法的問題。本文將介紹一些常見的情況以及解決方案,並提供具體的程式碼範例。問題描述在使用jQuery開發前端頁面時,有時候會碰

弱監督學習中的標籤獲取問題 弱監督學習中的標籤獲取問題 Oct 08, 2023 am 09:18 AM

弱監督學習中的標籤獲取問題,需要具體程式碼範例引言:弱監督學習是一種利用弱標籤進行訓練的機器學習方法。與傳統的監督學習不同,弱監督學習只需利用較少的標籤來訓練模型,而不是每個樣本都需要有準確的標籤。然而,在弱監督學習中,如何從弱標籤中準確地獲取有用的信息是一個關鍵問題。本文將介紹弱監督學習中的標籤獲取問題,並給出具體的程式碼範例。弱監督學習中的標籤獲取問題簡介:

See all articles