在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. 杭电-------2055An Easy Problem(C语言)

    #include<stdio.h> int main() { int m; int i; scanf("%d", &m); ]; int y; int z; ; ...

  2. 杭电-------2045不容易系列之(3)—— LELE的RPG难题(C语言写)

    /* 当最后一个块可以和第一个块染相同颜色时,答案为:3*pow(2,n-1);但是最后一块不能和第一块颜色相同,则减去和第一 块颜色相同的染色种数即可 3*pow(2,n-1)-ranse(n-1) ...

  3. 目标检测:yolo-v3与faster-rcnn

    一. 算法背景 1. 机器视觉实际应用往往涉及包含多个物体的复杂场景,基于深度卷积神经网络的特征提取器,需要结合其他算法来准确定位多个目标,并进行识别. 2. 工业领域,目标检测算法在安防和质检系统都 ...

  4. redis教程-redis环境搭建安装(qq:1324981084)

    需要整套redis缓存高可用集群教学视频的加qq:1324981084,本套视频从安装到集群的搭建和源码的解析,从零基础讲解. 1.利用命令将redis下载到/usr/local/文件夹下: wget ...

  5. Go 1.14 中 Cleanup 方法简介

    目录 一般的测试 使用 defer 清除依赖 使用 Cleanup 关于t.Parallel 总结 原文:What's New In Go 1.14: Test Cleanup 单元测试通常遵循某些步 ...

  6. codewars--js--Valid Braces--正则、键值数组

    问题描述: Write a function that takes a string of braces, and determines if the order of the braces is v ...

  7. centos7安装postgresql和postgis

    1.安装步骤 -- 安装对应的rpm文件(其他系统的rpm包,请自行到https://yum.postgresql.org/下载)yum install -y https://download.pos ...

  8. jenkin docker node 自动化部署配置

    jenkins 安装必须插件 NodeJS Plugin Publish Over SSH 1:新建一个任务,选择构建一个自由风格的软件项目 2:源码管理选择Git 2.1 填写Git项目地址Repo ...

  9. Linux下的 Mysql 8.0 yum 安装 并修改密码

    1.MySQL版本: mysql> select @@version;+-----------+| @@version |+-----------+| 8.0.18 |+-----------+ ...

  10. 使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

    一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的 ...