【发布时间】:2021-07-07 11:04:07
【问题描述】:
我将Angular (11) frontend 集成到Laravel 8 应用程序中。为了发出 API 请求,用户需要登录。每次前端 Angular 向后端 API 发出请求时,我都会收到以下错误:
Status Code: 401 Unauthorized
我设置了VueJs frontend 来测试相同的 API 端点 URL,VueJs 可以访问 API 端点并从后端获取响应。当我将 VueJS 发出的 API 请求的 Request Headers 与 Angular 11 发出的请求进行比较时,我发现 Angular 11 的 Request Headers 没有 X-XSRF-TOKEN。所以我认为这就是我收到上述错误的原因。
下面是如何在 Laravel 8 中设置 VueJs 和 AXIOS 以在 API Request Headers 中包含 X-XSRF-TOKEN。
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
const token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common["X-CSRF-TOKEN"] = token.content;
}
Angular 11在Laravel 8内API Request Headers中如何设置X-XSRF-TOKEN或X-CSRF-TOKEN?
注意:Angular 11 前端和 VueJs 前端都集成在 Laravel 8 应用程序的前端网页上,因此它们在同一个域中。所以我认为不需要laravel-cors 包。
【问题讨论】:
-
我不知道在哪里可以找到
headerName的值。 HttpClientXsrfModule.withOptions({ headerName: '这里应该是什么?' })
标签: angular laravel api csrf-token x-xsrf-token