在Axios 0.19.2中发送CSRF令牌的解决方法如下:
在后端配置CSRF令牌的生成和验证。这可能涉及到使用中间件或框架来生成和验证令牌,并将其附加到响应的Cookie中或作为请求头的一部分返回给客户端。
在前端使用Axios发送请求时,需要手动将CSRF令牌添加到请求头中。
以下是一个示例代码,展示了如何在Axios请求中添加CSRF令牌:
import axios from 'axios';
// 获取CSRF令牌
const getCSRFToken = () => {
// 从Cookie中获取CSRF令牌
const csrfToken = document.cookie.replace(
/(?:(?:^|.*;\s*)csrfToken\s*=\s*([^;]*).*$)|^.*$/,
'$1'
);
return csrfToken;
};
// 创建一个Axios实例
const api = axios.create({
baseURL: 'https://api.example.com',
// 添加CSRF令牌到请求头
headers: {
'X-CSRF-Token': getCSRFToken(),
},
});
// 发送GET请求
api.get('/data')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
请注意,上述代码中的getCSRFToken函数用于获取保存在Cookie中的CSRF令牌。你需要根据你的后端实现进行相应的修改。
这样,Axios会在每个请求的请求头中添加一个名为"X-CSRF-Token"的字段,并将CSRF令牌作为其值发送到后端。这样后端就能够验证请求的合法性了。