需求由來:公司項目外鏈到別公司項目或者網頁(通俗的說就是通過別的隨意網頁跳轉至你項目網頁),這時公司項目就要區分是從哪個公司或者哪個網頁跳轉過來的,從而進行不同的接口請求(公司所有接口都要帶上請求頭)。大部分做法都是設置請求頭來區分。做法如下:
廢話不多說 直接上代碼 通俗易懂:
新建一個配置文件requst.js 內容如下
import axios from 'axios'; // 設置公共請求頭 const init = function () { let url = window.location.search.toString() // 獲取外鏈過來的連接參數部分 let arr = [] let obj = {} // 預封裝集合 arr = url.split('&') // 對參數切割處理 在封裝 arr.forEach(l => { l = l.split('=') obj[l[0]] = l[1] }) // 具體有哪些參數看你們后台定義了哪些 下面的參數有 osType、deviceId、deviceChannel、language ..... axios.defaults.headers.common['deviceChannel'] = 'gclife_bmp_pc'; axios.defaults.headers.common['language'] = window.localStorage.defaultLanguage; // 有則賦值 obj.osType ? axios.defaults.headers.common['osType'] = obj.osType : axios.defaults.headers.common['osType'] = ''; obj.deviceId ? axios.defaults.headers.common['deviceId'] = obj.deviceId : axios.defaults.headers.common['deviceId'] = ''; . . . } export default { init }
接下來就是在main.js引入就行了 如下:
1 // 引入請求頭文件 2 import request from './request' 3 request.init() // 請求頭初始化
上訴內容就是設置公共請求頭的內容了。