Vuejs リクエストインターセプト方法: 1. src フォルダーの下に utils フォルダーを作成します; 2. フォルダーの下に request.js および auth.js ファイルを作成します; 3. axios をダウンロードします; 4. インスタンス実装を作成します傍受。
この記事の動作環境: 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 サイトの他の関連記事を参照してください。