vue axios请求头携带cookie
时间: 2024-11-24 22:27:29 浏览: 31
在Vue.js中,如果你想要在axios发起的HTTP请求中携带Cookie,你需要配置axios实例的defaults选项,特别是headers部分。首先确保已经安装了axios库,并且在Vue组件中引入它:
```javascript
import axios from 'axios';
// 创建axios实例并设置默认请求头
const service = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL, // api 的基础URL
timeout: 5000, // 请求超时时间
headers: {
// 默认携带全局cookie
'Content-Type': 'application/json',
Authorization: `Bearer ${localStorage.getItem('token') || ''}`, // 如果有token,也可以带上
},
withCredentials: true, // 表示是否发送cookies
});
// 允许跨域请求
service.interceptors.request.use(
config => {
if (process.env.NODE_ENV === 'development') {
// 在开发环境中添加更多请求头信息
config.headers['X-Custom-Header'] = 'example-value';
}
return config;
},
error => Promise.reject(error)
);
export default service;
```
在这个例子中,`withCredentials: true`会确保cookies在跨域请求时一并发送。当你需要在某个特定的组件里发送带cookie的请求时,可以直接调用这个服务:
```javascript
methods: {
fetchData() {
this.$axios.get('/api/endpoint', { headers: { 'Cookie': 'your-cookie-name=your-cookie-value' } })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
}
}
```
阅读全文