要解决这个问题,你可以手动将CSRF令牌添加到axios的请求头中,而不是依赖cookie中的令牌。
以下是一个使用axios发送GET请求并在请求头中添加CSRF令牌的示例:
import axios from 'axios';
// 获取CSRF令牌
const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
// 设置axios的默认请求头
axios.defaults.headers.common['X-CSRF-TOKEN'] = csrfToken;
// 发送GET请求
axios.get('/api/example')
.then(response => {
// 处理响应数据
console.log(response.data);
})
.catch(error => {
// 处理错误
console.error(error);
});
在上面的示例中,我们首先从页面的meta标签中获取CSRF令牌,并将其赋值给axios的默认请求头中的X-CSRF-TOKEN
字段。然后,我们使用axios发送GET请求,并在请求头中包含CSRF令牌。
你可以根据自己的需求修改代码,以适应其他类型的请求(如POST、PUT等)。
请确保在页面的标签中有一个meta标签,用于包含CSRF令牌,例如:
这样,当你发送请求时,CSRF令牌将被发送到Laravel后端。