axios 登录后设置header,vue+axios 全局添加请求头和参数操作

本文介绍在Vue应用中,如何利用axios在登录后全局设置请求头(包含token)以及如何将token添加到请求参数中。通过vue-cookie获取cookie中的token,并在axios的请求拦截器中设置headers或params。同时,提到了携带cookie的配置以及POST请求的Content-Type处理。
摘要由CSDN通过智能技术生成

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

走登录的接口都会返回一个 token 值, 然后存起来方便之后调接口的时候给后台传过去, 传给后台的方式有两种:(具体使用哪种需要和后台商量)

1, 放在请求头中

2, 放在接口的参数中

1, 放在请求头中

下面代码是从本地 cookie 中拿 token

vueCookie: 一个用于处理浏览器 cookies 的简单 vue.js 插件. https://www.npmjs.com/package/vue-cookies// 在封装 axios 的文件中添加拦截器

// 添加请求拦截器, 在请求头中加 token

service.interceptors.request.use(

config=>{

// 判断本地的 cookie 中是否有 token

if(VueCookie.isKey('token')){

config.headers.Authorization=VueCookie.get('token')

}else{

// 跳转到登录页面 (这里使用 router, 是因为路由文件引入到了此文件里)

router.push('/login')

}

returnconfig

},

error=>{

returnPromise.reject(error)

})

这个时候虽然在请求头中放了 token, 但是后台并拿不到 token 的值, 我们需要在创建 axios 对象的时候允许请求携带 cokie, 也可以加到 main.JS 全局里面.// 放在请求文件中

constservi

Vue 3 中,如果你想在 Axios 请求拦截器里添加全局参数,通常是在 `setup` 函数中配置 `axios` 实例,然后设置全局的 interceptors。如果你发现参数无法添加成功,可能是以下几个原因: 1. **未创建实例**:确保你在 `setup` 函数中先引入了 `axios` 并创建了一个实例。 ```javascript import axios from 'axios'; const service = axios.create({ baseURL: process.env.VUE_APP_API_URL, // API 的基础 URL defaultHeaders: { Authorization: 'Bearer your-token' } // 全局参数 }); ``` 2. **错误地设置了拦截器**:在 Vue 3 Composition API 中,你需要将拦截器设置在响应处理函数之前。试试这样: ```javascript service.interceptors.request.use( config => { // 添加全局参数到配置对象中 if (process.env.NODE_ENV === 'production') { config.headers.common['your-header'] = 'global-value'; } return config; }, error => Promise.reject(error) ); ``` 3. **插件冲突**:确保没有其他 Axios 插件或库覆盖了原有的拦截器配置。如果有,你可以尝试关闭它们,或者手动合并参数。 4. **状态管理影响**:如果用了 Vuex 等状态管理工具,检查是否已在 store 或者模块中设置过相同的参数。 5. **生命周期钩子的问题**:确认你不是在一个生命周期钩子(如 `beforeCreate`)中设置的拦截器,因为那时候组件还没完全初始化。 如果以上都没问题,而依然添加不进去,检查一下浏览器开发者工具的网络请求部分,看看实际发送的请求头是否有预期的改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值