gpt4 book ai didi

cors - 在 Laravel 5.3 Passport 中添加 Access-Control-Allow-Origin header 响应

转载 作者:行者123 更新时间:2023-12-03 06:08:21 25 4
gpt4 key购买 nike

我是 Laravel 新手,正在做一些使用 OAuth2.0 密码授予的 Laravel 5.3 Passport 项目。当我使用参数 curl API 时,它会使用 token 进行响应。但是,在浏览器中,端点应该添加额外的安全性,因为我的请求来自本地主机,而 API 位于我的虚拟机中。错误如下:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 400.

我知道问题是什么,但我不知道在哪里包含该 header ,因为这是第三方应用程序。

提前感谢各位专家。请帮忙。

最佳答案

简单的答案是将 Access-Control-Allow-Origin header 设置为 localhost*。我通常是这样做的:

创建一个名为 Cors 的简单中间件:

php artisan make:middleware Cors

将以下代码添加到app/Http/Middleware/Cors.php:

public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
}

您可以将 * 替换为 localhost 或保持原样。

下一步是加载中间件。将以下行添加到 app/Http/Kernel.php 中的 $routeMiddleware 数组中。

'cors' => \App\Http\Middleware\Cors::class, 

最后一步是在要设置访问源 header 的路由上使用中间件。假设您正在谈论 laravel 5.3 中的新 api 路由,则执行此操作的位置是 app/Providers/RouteServiceProvider.php,位于 mapApiRoutes() 函数内(您可以删除或注释该函数之前的代码):

    Route::group([
'middleware' => ['api', 'cors'],
'namespace' => $this->namespace,
'prefix' => 'api',
], function ($router) {
//Add you routes here, for example:
Route::apiResource('/posts','PostController');
});

关于cors - 在 Laravel 5.3 Passport 中添加 Access-Control-Allow-Origin header 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39429462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com