在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. 授权认证(IdentityServer4)

    区别 OpenId: Authentication :认证 Oauth: Aurhorize :授权 输入账号密码,QQ确认输入了正确的账号密码可以登录 --->认证 下面需要勾选的复选框(获取 ...

  2. 关于存储最近N次数据的问题的实现

    需求描述: 需要实现采集中,始终保持最近10次的数据 描述分析: 当采集第一次数据的存储的时候,开辟一个长度为11的list,和一个标记为来记录当前的采集轮询次数(记录1-10,第11次数值归1) 数 ...

  3. java开发学生宿舍管理系统源码

    开发环境: Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MySQL 运行效果图

  4. Javascript 基础学习(七)常用内置对象

    Array 定义 数组也是一个对象,是一个用来存储数据的对象.和Object类似,但是它的存储效率比普通对象要高.数组中保存的内容我们称为元素.数组使用索引(index)来操作元素.索引指由0开始的整 ...

  5. Centos7之firewall配置命令

    firewalld的基本使用 查看状态:systemctl status firewalld 启动:systemctl start firewalld 停止:systemctl stop firewa ...

  6. docker安装mysql/redis

    1.安装mysql容器 #搜索mysql镜像 docker search mysql #拉取mysql镜像 docker pull docker.io/mysql #创建mysql容器,MYSQL_R ...

  7. 如何利用dokcer提交我的比赛代码

    运气很好进入了天池的一个复赛,但是复赛评测时需要提交docker镜像,捣鼓了一个晚上,终于搞清了整套的流程.由于晚上已经下定决心要早点睡觉,害怕明早就会忘记的我还是先把步骤记录下来. 1. 安装doc ...

  8. clr via c# delegate

    1,委托列子 internal delegate void Feedback(int value); class DelegateRef { public static void StaticDele ...

  9. 面向对象+闭包+三种对象的声明方式(字面式、new Object、构造函数、工厂模式、原型模式、混合模式)

    面向对象: 对代码的一种抽象,对外统一提供调用接口的编程思想 对象的属性:事物自身拥有的东西 对象的方法:事物的功能 对象:事物的一个实例 对象的原型:.prototype -> 内存地址 -& ...

  10. IBM x3250m5安装redhat 6.5 加载raid卡驱动

    原文地址:http://www.i5i6.net/post/118.html 1. 下载对应raid卡驱动 for redhat6.5 x64(如本次x3250 m5 c100阵列卡驱动 lsi_dd ...