ホームページ  >  記事  >  ウェブフロントエンド  >  vuejs でインターセプトをリクエストする方法

vuejs でインターセプトをリクエストする方法

藏色散人
藏色散人オリジナル
2021-09-18 15:50:113162ブラウズ

Vuejs リクエストインターセプト方法: 1. src フォルダーの下に utils フォルダーを作成します; 2. フォルダーの下に request.js および auth.js ファイルを作成します; 3. axios をダウンロードします; 4. インスタンス実装を作成します傍受。

vuejs でインターセプトをリクエストする方法

この記事の動作環境: Windows 7 システム、Vue バージョン 2.9.6、DELL G3 コンピューター。

vuejs リクエスト インターセプトはどのように行われますか?

vue データ リクエスト インターセプトの特定のコード

次の場所に utils ファイルを作成します。 src フォルダー フォルダー

#同時に、フォルダー下に request.js と auth.js ファイルを作成します。

request.js がリクエストのメインの入り口ですインターセプトとリクエスト データのカプセル化
auth.js は、トークンの設定、トークンの削除、ユーザーがログインしているかどうかの判断のためのメイン エントランスをカプセル化します。

auth.js (トークンのカプセル化)

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');
 }

axios(コマンド: npm install axios --save-dev) をダウンロードし、axios と getToken を導入します

import axios from 'axios';
import { getToken } from './auth';

インスタンスを作成します: 2 つのパラメーター (timeout (タイムアウト時間)、baseUrl) を渡します(サーバー パス))

const instance = axios.create({
   timeout: 5000,
   baseURL: 'https://xxxxxxxxx/xxxx/',
 });

リクエスト インターセプト

// 请求拦截
 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);
  }
 );

リクエストのカプセル化

 /**
  * 获取数据 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);

推奨学習: 「vue チュートリアル

以上がvuejs でインターセプトをリクエストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。