在Vue前端中向后端发起http请求会有着两种写法:一种是在vue文件中直接导入axios模板,另外一种是使用Vue的属性$http。

  1、在第一种方式中,在同一个工程中所添加的vue文件直接使用axios对象发起http请求时都会拥有相同的请求头信息,只要我们在main.js文件中设置好Axios模块对象axios的headers信息即可; 但是在该工程中若是使用了组件库模块,那么在组件库模块中直接使用axios对象时不会继承父组件的请求头信息,此时需要在组件库中主动添加相关的请求头信息。eg:

(1)在main.js文件中导入axios模块
import axios from 'axios' 设置axios请求头属性,例如(这里只列举了两个请求头属性值的设置):
   axios.defaults.headers['X-Emp-No'] = '111111'
   axios.defaults.headers['X-Auth-Value'] = 'aaaaaaaaaaaa'
(2)在A.vue文件中导入axios模块
import axios from 'axios'
在A文件中利用axios直接发起http请求,如:
axios({
url: httpUrlA,
method: 'get'
})
  此时,在上述的请求头中可以发现X-Emp-No和X-Auth-Value信息。
  (3)A.vue文件中应用了组件库,而组件库中B.vue文件中导入axios模块
   impmort axios from 'axios'
   在B文件中利用axios直接发起http请求,如:
  axios({
    url: httpUrlB,
    method: 'get'
  }).then()
     .catch()
   此时,在上述的请求中不会发现X-Emp-No和X-Auth-Value信息(前提是在组件库中没有设置axios.defaults.headers属性信息)

  2、在第二种方式中,首先在main.js文件中导入Axios模板,然后对axios对象的headers属性设置好相关请求头信息,最后将axios对象赋值给Vue.prototype.$http的全局属性;此时,不管是同一个工程中所有的vue文件,还是组件库中的vue文件,只要使用this.$http的方式发起请求的话,那么都会继承相同的请求头信息。若在同一个工程的vue文件是直接使用axios对象发起请求的话,也会继承$http的请求头信息的;若是在组件库中直接使用axios对象发起请求的话,就不会继承父组件的$http的请求头信息了。eg:

(1)在main.js文件中导入axios模块
import axios from 'axios' 设置axios请求头属性,例如(这里只列举了两个请求头属性值的设置):
   axios.defaults.headers['X-Emp-No'] = '111111'
   axios.defaults.headers['X-Auth-Value'] = 'aaaaaaaaaaaa'
   同时添加这样的全局属性:Vue.prototype.$http = axios
(2)在A.vue文件直接利用$http属性发起http请求,如:
this.$http({
url: httpUrlA,
method: 'get'
})
  此时,在上述的请求头中可以发现X-Emp-No和X-Auth-Value信息。
  (3)A.vue文件中应用了组件库,而组件库中B.vue文件中直接利用$http属性发起http请求,如:
  this.$http({
    url: httpUrlB,
    method: 'get'
  }).then()
     .catch()
   此时,在上述的请求头中也是可以发现X-Emp-No和X-Auth-Value信息,这说明了通过这种方式发起请求,组件库是继承了父组件的属性了,这是因为Vue.prototype.$http属性是全局的。

  说明,建议最好采用$http全局属性的方式进行http请求,这样可以统一管理请求头信息,不会遗漏某些接口请求时没有添加请求头信息了。

------20191223闪

Vue中axios有关请求头的几点小结的更多相关文章

  1. vue中axios 配置请求拦截功能 及请求方式如何封装

    main.js 中: import axios from '................/axios' axios.js 中: //axios.js import Vue from 'vue' i ...

  2. vue中Axios请求豆瓣API数据并展示到Swipe中

    vue中Axios请求豆瓣API数据并展示到Swipe中 1.首先是安装Axios: 安装方法cnpm install axios --save 等待npm安装完毕: 2.在main.js中引入axi ...

  3. vue中比较完美请求的栗子(使用 axios 访问 API)

    vue中比较完美请求的栗子(使用 axios 访问 API) 官网地址:https://vuejs.bootcss.com/v2/cookbook/using-axios-to-consume-api ...

  4. vue中axios使用二:axios以post,get,jsonp的方式请求后台数据

    本文为博主原创,转载请注明出处 axios在上一篇中讲过:vue中axios使用一:axios做拦截器,axios是请求后台资源的模块,用来请求后台资源. axios本身是支持get,post请求后台 ...

  5. 聊聊 Vue 中 axios 的封装

    聊聊 Vue 中 axios 的封装 axios 是 Vue 官方推荐的一个 HTTP 库,用 axios 官方简介来介绍它,就是: Axios 是一个基于 promise 的 HTTP 库,可以用在 ...

  6. Vue中axios的封装和api接口的统一管理

    更新的是我csdn上的文章,需要的话可以看下,互相学习点击去我的csdn vue中axios的封装 在vue项目和后端交互获取数据时,通常使用axios库,官方文档:https://www.npmjs ...

  7. vue中axios的深入使用

    如上所示一条简单的请求数据,用到了vue中axios,promise,qs等等 这里我将vue中用到的axios进行了封装方便日后使用  先对工具类进行封装utils/axios.js: // 引入模 ...

  8. axios设置请求头内容

    axios设置请求头中的Authorization 和 cookie 信息: GET请求 axios.get(urlString, { headers: { 'Authorization': 'Bea ...

  9. vue中axios的安装使用

    axios是一个基于 promise 的 HTTP 库,在vue中axios是比较常用的网络请求方法. 安装 npm install axios -S 在main.js配置 import axios ...

随机推荐

  1. git报错:fatal: No configured push destination.

    本地仓库代码(git push)上传git仓库报错: fatal: No configured push destination. Either specify the URL from the co ...

  2. node准备

    === 原生的api === express express  中间件相关的. https://juejin.im/post/5aa345116fb9a028e52d7217 推荐几篇入门的优质博客: ...

  3. NIO-WindowsSelectorImpl源码分析

    目录 NIO-WindowsSelectorImpl源码分析 目录 前言 初始化WindowsSelectorProvider 创建WindowsSelectorImpl WindowsSelecto ...

  4. java 入门如何设计类

    2019/12/24   |    在校大二上学期    |    太原科技大学 初学java后,我们会发现java难点不在于Java语法难学,而是把我们挂在了如何设计类的“吊绳”上了.这恰恰也是小白 ...

  5. Docker总结2020

    1. docker ps docker exec -it php7 /bin/bash 设置文件权限: chmod -R sign_tp5/ 重启nginx命令: nginx -s reload    ...

  6. (好题)POJ3057

    二分+二分图匹配+BFS 题意: 墙壁“X”,空区域(都是人)“.”, 门“D”. 人向门移动通过时视为逃脱,门每秒能出去一个人,人可以上下左右移动,墙阻止移动. 求最优移动方案下,最后一个人逃脱的最 ...

  7. kuangbin专题 专题九 连通图 Warm up HDU - 4612

    题目链接:https://vjudge.net/problem/HDU-4612 题目:一个大地图,给定若干个连通图,每个连通图中有若干个桥,你可以在任意某个连通图的 任意两个点添加一条边,问,添加一 ...

  8. 8.python内置模块之random模块简介

    Python中的random模块用于生成随机数. 常用的7个函数: 1.random.random():返回一个[0,1)之间的随机浮点值(双精度) 2.random.uniform(a,b):返回[ ...

  9. MATLAB应用专题part2-电力电子仿真技术

    有匪君子,如切如磋,如琢如磨. --<诗经·卫风·淇奥> 这篇博客知识我记录一下我在仿真学习中积累到的知识和遇到的坑. 第一部分:知识部分 1.为什么电阻与电感串联电路中电流的波形比电压的 ...

  10. 【算法】——递归:小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶,2阶或者3阶,实现一个方法,计算小白有多少种走完楼梯的方式。

    分析:从最后一步分析,能有的情况有三种情况构成,写出如图所示的方程 //和斐波拉契相似 int void f(int n) { //考虑出口 ) ;//正常思路是返回0 ) ;//通过自己想可以得出只 ...