在 Laravel 7 中,如果 axios.get 请求中的 /airlock/csrf-cookie 不起作用,可能是因为没有正确设置 Laravel 的 CSRF 保护。
解决这个问题的方法是,确保在发送请求之前,先获取 CSRF 令牌,并将其设置为 axios 的默认请求头。
以下是一个示例代码,演示如何在 Laravel 7 中使用 axios 发送 GET 请求并设置 CSRF 令牌:
首先,确保你已经安装了 axios 和 laravel-airlock。
然后,在你的前端代码中导入 axios:
import axios from 'axios';
接下来,获取 CSRF 令牌并将其设置为 axios 的默认请求头:
axios.get('/sanctum/csrf-cookie').then(response => {
// 此时 CSRF 令牌已经设置到 axios 的默认请求头中
// 发送 GET 请求
axios.get('/your-endpoint')
.then(response => {
// 处理响应
})
.catch(error => {
// 处理错误
});
});
在这个示例中,我们先发送一个 GET 请求到 /sanctum/csrf-cookie,这个请求将设置 CSRF 令牌到 axios 的默认请求头中。然后,我们可以继续发送其他 GET 请求,并确保 CSRF 令牌已经包含在请求头中。
这样,axios.get /airlock/csrf-cookie 在 Laravel 7 中应该就能起作用了。请注意,这个示例使用了 Sanctum 来处理 CSRF 保护,如果你使用的是 Airlock,将 /sanctum/csrf-cookie 替换为 /airlock/csrf-cookie 即可。
希望这个解决方法能帮到你!