Laravel CORS 策略已阻止从源访问 XMLHttpRequest
Laravel Access to XMLHttpRequest at from origin has been blocked by CORS policy
当我从 Angular 应用程序向 Laravel 发送呼叫时,出现以下问题
Access to XMLHttpRequest at 'http://localhost:8083/api/login_otp' from
origin 'http://localhost:4200' has been blocked by CORS policy:
Request header field ip is not allowed by Access-Control-Allow-Headers
in preflight response.
我找到了解决方案并在 CROS.php
中进行了以下更改
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'Origin, Content-Type, X-Auth-Token, Authorization, X-Requested-With, x-xsrf-token');
}
我在 Access-Control-Allow-Headers 中添加了 x-xsrf-token,但我仍然遇到同样的错误。
阅读错误信息:
Request header field ip is not allowed by Access-Control-Allow-Headers
它说 ip
是不允许的。
看看你的代码:
'Origin, Content-Type, X-Auth-Token, Authorization, X-Requested-With, x-xsrf-token'
您的代码没有提到 ip
。
将 ip
添加到允许的列表 headers。
首先,您需要在 routes/api.php 文件夹中定义所有 API 路径。在 api.php 文件夹中,您可以像下面这样定义路径:
Route::get("/", [AngularController::class, "index"]); --> Incorrect Laravel API path
那么你必须在 Angular 中设置基数 url:-
private url = 'http://local.new_practical.com/api/'; --> Incorrect Angular Base URL
这里需要注意的重要一点是angular中定义的url必须加上'http://'前缀。如果它已经存在,请不要像上面提到的 Laravel API 路径那样设置你的 api 路径。相反,请通过以下方式提及它:
Route::get("getEmployees", [AngularController::class, "index"]); --> Correct Laravel API path
因此,将 angular 中定义的基数 url 设置为:
private url = 'http://local.new_practical.com/api/getEmployees'; --> Correct Angular Base URL
当我从 Angular 应用程序向 Laravel 发送呼叫时,出现以下问题
Access to XMLHttpRequest at 'http://localhost:8083/api/login_otp' from origin 'http://localhost:4200' has been blocked by CORS policy: Request header field ip is not allowed by Access-Control-Allow-Headers in preflight response.
我找到了解决方案并在 CROS.php
中进行了以下更改public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'Origin, Content-Type, X-Auth-Token, Authorization, X-Requested-With, x-xsrf-token');
}
我在 Access-Control-Allow-Headers 中添加了 x-xsrf-token,但我仍然遇到同样的错误。
阅读错误信息:
Request header field ip is not allowed by Access-Control-Allow-Headers
它说 ip
是不允许的。
看看你的代码:
'Origin, Content-Type, X-Auth-Token, Authorization, X-Requested-With, x-xsrf-token'
您的代码没有提到 ip
。
将 ip
添加到允许的列表 headers。
首先,您需要在 routes/api.php 文件夹中定义所有 API 路径。在 api.php 文件夹中,您可以像下面这样定义路径:
Route::get("/", [AngularController::class, "index"]); --> Incorrect Laravel API path
那么你必须在 Angular 中设置基数 url:-
private url = 'http://local.new_practical.com/api/'; --> Incorrect Angular Base URL
这里需要注意的重要一点是angular中定义的url必须加上'http://'前缀。如果它已经存在,请不要像上面提到的 Laravel API 路径那样设置你的 api 路径。相反,请通过以下方式提及它:
Route::get("getEmployees", [AngularController::class, "index"]); --> Correct Laravel API path
因此,将 angular 中定义的基数 url 设置为:
private url = 'http://local.new_practical.com/api/getEmployees'; --> Correct Angular Base URL