axios中的302状态码
这次给大家带来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中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci axios中的302状态码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Sangat biasa untuk menggunakan axios dalam aplikasi Vue ialah klien HTTP berasaskan Promise yang boleh digunakan dalam penyemak imbas dan Node.js. Semasa proses pembangunan, mesej ralat "Uncaught(inpromise)Error: Requestfailedwithstatuscode500" kadangkala muncul untuk pembangun, mesej ralat ini mungkin sukar difahami dan diselesaikan. Artikel ini akan meneroka perkara ini

Baru-baru ini, semasa pembangunan aplikasi Vue, saya menghadapi masalah biasa: "TypeError: Failedtofetch" mesej ralat. Masalah ini berlaku apabila menggunakan axios untuk membuat permintaan HTTP dan pelayan bahagian belakang tidak bertindak balas kepada permintaan dengan betul. Mesej ralat ini biasanya menunjukkan bahawa permintaan tidak boleh sampai ke pelayan, mungkin disebabkan oleh sebab rangkaian atau pelayan tidak bertindak balas. Apakah yang perlu kita lakukan selepas mesej ralat ini muncul? Berikut ialah beberapa penyelesaian: Semak sambungan rangkaian anda disebabkan oleh

Pilihan permintaan data dalam Vue: AxiosorFetch? Dalam pembangunan Vue, mengendalikan permintaan data adalah tugas yang sangat biasa. Memilih alat yang hendak digunakan untuk permintaan data adalah persoalan yang perlu dipertimbangkan. Dalam Vue, dua alatan yang paling biasa ialah Axios dan Fetch. Artikel ini akan membandingkan kebaikan dan keburukan kedua-dua alat dan memberikan beberapa kod sampel untuk membantu anda membuat pilihan anda. Axios ialah klien HTTP berasaskan Promise yang berfungsi dalam penyemak imbas dan Node.

Pengenalan kepada kod status HTTP 525: Fahami definisi dan penggunaan kod status HTTP (HypertextTransferProtocol) 525 bermakna pelayan mempunyai ralat semasa proses jabat tangan SSL, mengakibatkan ketidakupayaan untuk mewujudkan sambungan selamat. Pelayan mengembalikan kod status ini apabila ralat berlaku semasa jabat tangan Keselamatan Lapisan Pengangkutan (TLS). Kod status ini termasuk dalam kategori ralat pelayan dan biasanya menunjukkan konfigurasi pelayan atau masalah persediaan. Apabila pelanggan cuba menyambung ke pelayan melalui HTTPS, pelayan tidak mempunyai

Bagaimana untuk menyelesaikan masalah "Ralat: NetworkError" apabila menggunakan axios dalam aplikasi Vue? Dalam pembangunan aplikasi Vue, kami sering menggunakan axios untuk membuat permintaan API atau mendapatkan data, tetapi kadangkala kami menghadapi "Ralat: NetworkError" dalam permintaan axios. Apakah yang perlu kami lakukan dalam kes ini? Pertama sekali, anda perlu memahami maksud "Error:NetworkError" Ia biasanya bermaksud sambungan rangkaian

Gunakan Vue dan Axios dengan cekap untuk melaksanakan pemprosesan kumpulan data bahagian hadapan Dalam pembangunan bahagian hadapan, pemprosesan data adalah tugas biasa. Apabila kita perlu memproses sejumlah besar data, pemprosesan data akan menjadi sangat menyusahkan dan tidak cekap jika tiada kaedah yang berkesan. Vue ialah rangka kerja bahagian hadapan yang sangat baik, dan Axios ialah perpustakaan permintaan rangkaian yang popular. Mereka boleh bekerjasama untuk melaksanakan pemprosesan kumpulan data bahagian hadapan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan Vue dan Axios dengan cekap untuk pemprosesan data kelompok dan memberikan contoh kod yang berkaitan.

Dalam aplikasi Vue.js, ia adalah perkara biasa untuk menggunakan axios. Axios ialah perpustakaan permintaan HTTP yang berkuasa yang membolehkan anda menghantar permintaan HTTP tak segerak dengan mudah. Walau bagaimanapun, apabila menggunakan axios, anda akan menghadapi beberapa ralat, salah satunya ialah "TypeError: bindisnotafunction". Ralat ini biasanya disebabkan oleh versi axios yang tidak serasi dengan Vue.js. Mari kita lihat penyelesaian kepada ralat ini. Pertama, kita perlukan

Kuasai maksud kod status HTTP 301: Senario aplikasi biasa pengalihan halaman web Dengan perkembangan pesat Internet, keperluan orang ramai untuk interaksi halaman web menjadi lebih tinggi dan lebih tinggi. Dalam bidang reka bentuk web, pengalihan halaman web adalah teknologi biasa dan penting, dilaksanakan melalui kod status HTTP 301. Artikel ini akan meneroka maksud kod status HTTP 301 dan senario aplikasi biasa dalam pengalihan halaman web. Kod status HTTP301 merujuk kepada ubah hala kekal (PermanentRedirect). Apabila pelayan menerima pelanggan
