Axios POST请求使用CSRF令牌被拒绝- 401错误通常是因为CSRF令牌不正确或过期导致的。下面是一个解决方法的代码示例:
import axios from 'axios';
// 获取CSRF令牌
axios.get('/api/csrf_token').then(response => {
// 将CSRF令牌保存到cookie或者header中,具体根据服务器要求而定
const csrfToken = response.data.csrfToken;
axios.defaults.headers.common['X-CSRF-Token'] = csrfToken;
// 发起POST请求
axios.post('/api/endpoint', {
// 请求体数据
}).then(response => {
// 处理请求成功的响应
}).catch(error => {
// 处理请求失败的响应
});
}).catch(error => {
// 处理获取CSRF令牌失败的情况
});
在上述代码中,我们首先使用axios.get方法获取CSRF令牌,然后将令牌保存到cookie或者请求头中(具体根据服务器要求而定)。接下来,我们使用axios.post方法发起POST请求,并在请求中包含对应的请求体数据。最后,我们处理请求成功和失败的响应。
确保在实际代码中将/api/csrf_token和/api/endpoint替换为实际的API端点。另外,根据服务器要求,可能需要调整CSRF令牌保存的方式(如保存到cookie中或者设置请求头)。
如果上述解决方法不能解决问题,可能还需进一步排查服务器端的设置,确保CSRF令牌的生成和验证逻辑正确。