axios全局设置url公共请求头

需求由来:

公司项目外链到别公司项目或者网页(通俗的说就是通过别的随意网页跳转至你项目网页),这时公司项目就要区分是从哪个公司或者哪个网页跳转过来的,从而进行不同的接口请求(公司所有接口都要带上请求头)。大部分做法都是设置请求头来区分。做法如下:

废话不多说   直接上代码  通俗易懂:

新建一个配置文件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() // 请求头初始化

上诉内容就是设置公共请求头的内容了。

原文地址:https://www.cnblogs.com/ljx20180807/p/9766699.html