Code d'état 302 dans axios
Cette fois, je vais vous apporter le code d'état 302 dans axios. Quelles sont les précautions à prendre pour utiliser le code d'état 302 dans axios ? Ce qui suit est un cas pratique, jetons un coup d'oeil.
Par exemple, si le navigateur ouvre une application à page unique (SPA) et que le jeton (ou la session) expire après un certain temps, après qu'une requête Ajax soit lancée sur la page, le backend renvoie un code d'état 302 et passe à la page de connexion. J'utilise Vue + axios et j'ai constaté qu'axios ne peut pas intercepter la requête 302. Voici le processus de traitement.
Penser
poignée Google Axios 302 Voir deux discussions sur axios github
• https://github .com/ axios/axios/issues/932
• https://github.com/axios/axios/issues/980
La conclusion est : la requête ajax envoyée par le navigateur, Le serveur renvoie un code d'état 302, et le navigateur sautera tout seul. Nous ne pouvons pas obtenir et personnaliser directement le processus de traitement via la bibliothèque js (jquery, axios). Nous ne pouvons qu'attendre l'URL après la redirection du navigateur pour obtenir les informations correspondantes.
axios envoie ajax -->
le serveur renvoie 302 et l'emplacement -->
Le navigateur demande une nouvelle URL
Le serveur renvoie 200 -- >axios Obtenez des résultats
Alors comment le résoudre ? Le serveur doit coopérer pour résoudre le problème
Brower (ajax et non auth) -->
Le serveur détermine qu'il s'agit d'une requête ajax et n'est pas connecté, et renvoie un Code d'état 401 --->
Le navigateur axios intercepte 401 et accède à /login via js
pour résoudre le problème
côté navigateur, axios ajoute un intercepteur
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';
Code back-end, en utilisant le framework flask, il suffit de regarder le processus, de vérifier si la requête est ajax et non connectée, puis de revenir le code d'état 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
Je crois que vous avez lu le cas dans cet article. Après avoir maîtrisé la méthode, veuillez prêter attention aux autres articles connexes sur le site Web php chinois pour un contenu plus passionnant !
Lecture recommandée :
Comment utiliser vue pour demander du json local
Opération JS Déduplication de tableau JSON
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Il est très courant d'utiliser axios dans les applications Vue. axios est un client HTTP basé sur Promise qui peut être utilisé dans les navigateurs et Node.js. Pendant le processus de développement, le message d'erreur « Uncaught(inpromise)Error : Requestfailedwithstatuscode500 » apparaît parfois pour les développeurs, ce message d'erreur peut être difficile à comprendre et à résoudre. Cet article explorera ceci

Récemment, lors du développement d'applications Vue, j'ai rencontré un problème courant : le message d'erreur « TypeError : Failedtofetch ». Ce problème se produit lors de l'utilisation d'axios pour effectuer des requêtes HTTP et que le serveur backend ne répond pas correctement à la requête. Ce message d'erreur indique généralement que la demande ne peut pas atteindre le serveur, probablement pour des raisons de réseau ou parce que le serveur ne répond pas. Que devons-nous faire après l'apparition de ce message d'erreur ? Voici quelques solutions de contournement : Vérifiez votre connexion réseau en raison de

Choix de requête de données dans Vue : AxiosorFetch ? Dans le développement de Vue, la gestion des demandes de données est une tâche très courante. Choisir quel outil utiliser pour les demandes de données est une question à considérer. Dans Vue, les deux outils les plus courants sont Axios et Fetch. Cet article comparera les avantages et les inconvénients des deux outils et donnera un exemple de code pour vous aider à faire votre choix. Axios est un client HTTP basé sur Promise qui fonctionne dans les navigateurs et Node.

Introduction au code d'état HTTP 525 : Comprendre sa définition et son utilisation Le code d'état HTTP (HypertextTransferProtocol) 525 signifie que le serveur a une erreur lors du processus de prise de contact SSL, entraînant l'incapacité d'établir une connexion sécurisée. Le serveur renvoie ce code d'état lorsqu'une erreur se produit lors de la négociation TLS (Transport Layer Security). Ce code d'état appartient à la catégorie des erreurs de serveur et indique généralement un problème de configuration ou d'installation du serveur. Lorsque le client tente de se connecter au serveur via HTTPS, le serveur n'a aucun

Comment résoudre le problème « Erreur : NetworkError » lors de l'utilisation d'axios dans l'application Vue ? Dans le développement d'applications Vue, nous utilisons souvent axios pour faire des requêtes API ou obtenir des données, mais parfois nous rencontrons « Erreur : NetworkError » dans les requêtes axios. Que devons-nous faire dans ce cas ? Tout d'abord, vous devez comprendre ce que signifie « Erreur : NetworkError ». Cela signifie généralement la connexion réseau.

Utilisez efficacement Vue et Axios pour implémenter le traitement par lots des données frontales. Dans le développement front-end, le traitement des données est une tâche courante. Lorsque nous devons traiter une grande quantité de données, le traitement des données deviendra très lourd et inefficace s’il n’existe pas de méthode efficace. Vue est un excellent framework frontal et Axios est une bibliothèque de requêtes réseau populaire. Ils peuvent travailler ensemble pour implémenter le traitement par lots des données frontales. Cet article présentera en détail comment utiliser efficacement Vue et Axios pour le traitement par lots de données et fournira des exemples de code pertinents.

Dans les applications Vue.js, il est très courant d'utiliser axios. Axios est une puissante bibliothèque de requêtes HTTP qui vous permet d'envoyer facilement des requêtes HTTP asynchrones. Cependant, lors de l'utilisation d'axios, vous rencontrerez des erreurs, dont "TypeError: bindisnotafunction". Cette erreur est généralement causée par l'incompatibilité de la version axios avec Vue.js. Jetons un coup d'œil aux solutions à cette erreur. Premièrement, nous avons besoin

Comprendre la signification du code d'état HTTP 301 : scénarios d'application courants de redirection de pages Web Avec le développement rapide d'Internet, les exigences des utilisateurs en matière d'interaction avec les pages Web sont de plus en plus élevées. Dans le domaine de la conception Web, la redirection de pages Web est une technologie courante et importante, mise en œuvre via le code d'état HTTP 301. Cet article explorera la signification du code d'état HTTP 301 et les scénarios d'application courants dans la redirection de pages Web. Le code d'état HTTP 301 fait référence à une redirection permanente (PermanentRedirect). Lorsque le serveur reçoit le message du client
