axios cookie跨域
时间: 2023-08-27 13:17:09 浏览: 118
在使用 axios 进行跨域请求时,由于浏览器的同源策略限制,无法直接访问其他域名下的 cookie。但你可以通过一些方法来实现跨域请求时携带 cookie。
首先,确保服务端设置了正确的跨域响应头,例如允许携带 cookie:
```javascript
// 服务端响应头设置
res.setHeader('Access-Control-Allow-Origin', 'http://example.com'); // 替换成实际允许请求的域名
res.setHeader('Access-Control-Allow-Credentials', 'true');
```
然后,前端在发送请求时需要设置 `withCredentials` 为 `true`,以便携带 cookie:
```javascript
// 发送跨域请求时设置 withCredentials
axios.get('http://example.com/api/data', { withCredentials: true })
.then(response => {
// 处理响应
})
.catch(error => {
// 处理错误
});
```
这样设置后,axios 就会在跨域请求时携带 cookie。请注意,`Access-Control-Allow-Origin` 的值必须是请求域的完整域名,不能使用通配符 `*`。
同时,还需要确保服务端设置了正确的 `Access-Control-Allow-Headers` 响应头,允许 `Cookie` 字段:
```javascript
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Cookie');
```
通过以上配置,你应该可以在跨域请求中携带 cookie 了。但请注意,这种方式仅在目标服务器允许携带 cookie 的情况下有效。
阅读全文