vue+axios全局添加请求头和参数操作

下面是详细讲解“vue+axios全局添加请求头和参数操作”的完整攻略。

1. 添加全局请求头

1.1 在 Vue 项目中安装 Axios

在 Vue 项目中使用 Axios 首先需要安装 Axios。可以通过以下命令安装:

npm i axios -S

1.2 声明 Axios

在 Vue 项目中创建一个 axios.js 文件,然后声明 Axios 并设置全局请求头:

import axios from 'axios';
import store from '@/store';

axios.defaults.baseURL = 'http://api.example.com';
axios.defaults.headers.common['Authorization'] = store.getters.token;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

通过以上代码,可以为 Axios 设置全局请求头。其中 defaults.baseURL 设置了请求的基本 URL,defaults.headers.common 设置了默认的请求头,defaults.headers.post 设置了 POST 请求的请求头。

1.3 在 main.js 文件中引入 Axios

将 Axios 引入到 main.js 文件中:

import Vue from 'vue';
import axios from '@/axios';
import App from './App.vue';

Vue.prototype.$http = axios;

以上代码将 Axios 设置为 Vue 的原型属性 $http,可以全局访问。

1.4 发送请求

发送请求时,可以直接使用 this.$http 进行访问,例如:

this.$http.get('/user').then(response => {
  console.log(response.data);
}).catch(error => {
  console.error(error);
});

注意:需要在 store 中保存登录时获取的 token 值,否则获取的 store.getters.token 值为 null。

2. 添加全局请求参数

2.1 声明 Axios

在声明 Axios 中添加请求拦截器,设置全局请求参数:

import axios from 'axios';
import store from '@/store';

axios.interceptors.request.use(
  (config) => {
    config.params = {
      ...config.params,
      token: store.getters.token
    };
    config.paramsSerializer = (params) => {
      return qs.stringify(params, { arrayFormat: 'comma' });
    };
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

以上代码为 Axios 添加了请求拦截器,并设置了全局请求参数。如上代码所示,config.params 设置了默认的请求参数,并将 store.getters.token 添加到 params 中。config.paramsSerializer 将 params 对象序列化为查询字符串,使用逗号作为分隔符。

2.2 在 main.js 文件中引入 Axios

同样地,将 Axios 引入到 main.js 文件中:

import Vue from 'vue';
import axios from '@/axios';
import App from './App.vue';

Vue.prototype.$http = axios;

然后在 Vue 的原型属性 $http 中可以使用全局请求参数:

this.$http.get('/user', {
  params: {
    page: 1
  }
}).then(response => {
  console.log(response.data);
}).catch(error => {
  console.error(error);
});

以上代码中,请求 /user 接口时,全局参数 token 会自动添加,局部参数 page 也会追加到请求参数中。

以上就是“vue+axios全局添加请求头和参数操作”的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue+axios全局添加请求头和参数操作 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue项目代码之路由拆分、Vuex模块拆分、element按需加载详解

    我来为你详细讲解“Vue项目代码之路由拆分、Vuex模块拆分、element按需加载详解”的完整攻略。 路由拆分 当我们的项目变得越来越复杂时,路由也会变得越来越庞大。为了更好地维护我们的代码,我们可以考虑将路由进行拆分。 首先,我们可以在项目根目录下新建一个router文件夹,用来存放路由相关的文件。接着,我们可以在这个文件夹下新建一个index.js文件…

    Vue 2023年5月27日
    00
  • React中Portals与错误边界处理实现

    当React应用程序遇到问题或出现错误时,错误边界(error boundaries)特别有用。错误边界是React组件,它会在渲染期间捕获并打印任何在树的子组件中抛出的JavaScript错误,并且,相当于错误被“停留”在边界内,防止应用程序崩溃。下面就让我们来详细讲解React中的错误边界处理以及Portals的使用。 错误边界(Error Bounda…

    Vue 2023年5月28日
    00
  • Vue 中批量下载文件并打包的示例代码

    要实现Vue中批量下载文件并打包,可以使用webpack和file-saver库。 安装file-saver库 首先需要安装file-saver库,可以使用npm进行安装,命令如下: npm install file-saver –save 创建download.js 创建一个download.js文件,包含一个方法downloadSingle(url, …

    Vue 2023年5月28日
    00
  • Vue.js render方法使用详解

    下面是”Vue.js render方法使用详解”的完整攻略: 一、render方法是什么 render方法是Vue.js中非常重要的一个方法,在Vue.js内部也是经常被使用的。它是用来创建Vue.js中的虚拟DOM树,并最终根据这棵虚拟DOM树生成真正的DOM树。使用render方法可以获得更加精细的DOM操作控制权,从而实现更高级的交互和性能优化。 使用…

    Vue 2023年5月27日
    00
  • 简述vue状态管理模式之vuex

    下面是详细讲解“简述Vue状态管理模式之Vuex”的攻略。 规划状态 在使用Vuex之前,我们需要先规划出需要管理的状态。这些状态可能是组件之间需要共享的数据,例如用户登录状态、购物车商品列表、主题等。 Vuex状态应该以应用程序的核心管理问题为基础,需要考虑的因素如下: 所有组件都需要此状态吗? 这种状态是可变的,还是不变的? 这种状态是从哪里来的? 安装…

    Vue 2023年5月27日
    00
  • Vue h函数的使用详解

    Vue h函数的使用详解 在Vue中,有时候我们需要手动创建一个虚拟节点来渲染成真实的DOM元素。这时候我们就可以使用Vue提供的h函数来创建一个虚拟节点,h函数会根据传入的参数自动创建对应的虚拟节点。 h函数的基本语法 Vue h函数的基本语法如下: h(tag, data?, children?) tag: String | Object data: O…

    Vue 2023年5月27日
    00
  • JS基于递归实现倒计时效果的方法

    当我们需要倒计时的效果时,JS基于递归实现倒计时就是一种很不错的方案了。接下来我将为大家讲解如何使用JS实现基于递归的倒计时效果。 步骤一:准备样式 通过CSS设置我们的倒计时样式,使页面表现更加美观。这里我们假设我们的倒计时样式类名为 countdown。 .countdown { font-size: 24px; color: #666; } 步骤二:编…

    Vue 2023年5月28日
    00
  • three.js 利用uv和ThreeBSP制作一个快递柜功能

    下面我将详细讲解通过利用uv和ThreeBSP制作一个快递柜功能的完整攻略。 1. 什么是ThreeBSP ThreeBSP是一种能够用于对Three.js中的3D模型进行布尔运算(Union、Intersection、Difference)的工具。有了 ThreeBSP,我们就可以用简单的API调用对3D模型的形状进行编辑、剖分、重组等操作,非常方便。 2…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部