Maison > interface Web > Voir.js > le corps du texte

Comment demander une interception dans vuejs

藏色散人
Libérer: 2023-01-13 00:45:34
original
3222 Les gens l'ont consulté

Méthode d'interception des requêtes Vuejs : 1. Créez un dossier utils sous le dossier src ; 2. Créez les fichiers request.js et auth.js sous le dossier ; 3. Téléchargez axios ; 4. Créez une instance pour implémenter l'interception des requêtes.

Comment demander une interception dans vuejs

L'environnement d'exploitation de cet article : système Windows 7, Vue version 2.9.6, ordinateur DELL G3.

Comment vuejs demande-t-il l'interception ?

Le code spécifique pour l'interception des demandes de données vue

Créez un dossier utils sous le dossier src

En même temps, créez request.js et auth.js fichiers sous le dossier

request.js est l'entrée principale pour l'interception des demandes et l'encapsulation des données des demandes
auth.js est l'entrée principale pour définir les jetons, supprimer les jetons et déterminer si l'utilisateur est connecté

auth.js ( jeton d'encapsulation)

export function isLogin() {
  if (localStorage.getItem('token')) {
   return true;
  } else {
   return false;
  }
 }
 export function getToken() {
  return localStorage.getItem('token');
 }
 export function setToken(token) {
  localStorage.setItem('token', token);
 }
 
 export function removeToken() {
  localStorage.removeItem('token');
 }
Copier après la connexion

Téléchargez axios (commande : npm install axios --save-dev), et introduisez axios, getToken

import axios from 'axios';
import { getToken } from './auth';
Copier après la connexion

Créez une instance : passez deux paramètres (timeout (timeout time), baseUrl (chemin du serveur))

const instance = axios.create({
   timeout: 5000,
   baseURL: 'https://xxxxxxxxx/xxxx/',
 });
Copier après la connexion

Demande d'interception

// 请求拦截
 instance.interceptors.request.use(
  function(config) {
   // eslint-disable-next-line prettier/prettier
   config.headers.authorization = 'Bearer ' + getToken();
   return config;
  },
  function(error) {
   // Do something with request error
   return Promise.reject(error);
  }
 );
 
 instance.interceptors.response.use(
  response => {
   return response;
  },
  error => {
   if (error.response.status == 401) {
    window.location.href = '/#/login';
   }
   if (error.response.status == 404) {
    window.location.href = '/404.html';
   }
   return Promise.reject(error.response.data);
  }
 );
Copier après la connexion

Demande d'encapsulation

 /**
  * 获取数据 get请求
  * @param {*} url
  * @param {*} config
  */
 export const get = (url, config) => instance.get(url, config);
 
 /**
  * post请求
  * @param {*} url
  * @param {*} data
  * @param {*} config
  */
 export const post = (url, data) => instance.post(url, data);
 /**
  * put
  * @param {*} url
  * @param {*} data
  * @param {*} config
  */
 export const put = (url, data, config) => instance.put(url, data, config);
 
 /**
  * delete
  * @param {*} url
  * @param {*} config
  */
 export const remove = (url, config) => instance.delete(url, config);
Copier après la connexion

Apprentissage recommandé : "tutoriel vue"

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!

Étiquettes associées:
vue
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal