当前位置: 首页 > 后端技术 > PHP

LaravelAPI允许跨域访问

时间:2023-03-30 01:33:09 PHP

如果服务器A请求服务器B的接口,一般会出现跨域问题。XMLHttpRequest无法加载http://api.console.vms3.com/api/user。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问来源“http://localhost:8080”。这意味着服务器响应不允许跨域访问。然后我们需要让服务器支持跨域访问,即在响应头中添加'Access-Control-Allow-Origin:*'。第一步:创建中间件创建`app/Http/Middleware/AccessControlAllowOrigin.php`中间件将'Access-Control-Allow-Origin:*'写入header.app/Http/Middleware/AccessControlAllowOrigin.php[\App\Http\Middleware\EncryptCookies::class,\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,\Illuminate\Session\Middleware\StartSession::类,//\Illuminate\Session\Middleware\AuthenticateSession::类,\Illuminate\View\Middleware\ShareErrorsFromSession::类,\App\Http\Middleware\VerifyCsrfToken::类,\Illuminate\Routing\Middleware\SubstituteBindings::class,],'api'=>['throttle:60,1','bindings','cors'],];/***应用程序的路由中间件。**这些中间件可以分配给组或单独使用。**@var数组*/protected$routeMiddleware=['auth'=>\Illuminate\Auth\Middleware\Authenticate::class,'auth.basic'=>\Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,'bindings'=>\Illuminate\Routing\Middleware\SubstituteBindings::class,'can'=>\Illuminate\Auth\Middleware\Authorize::class,'guest'=>\App\Http\Middleware\RedirectIfAuthenticated::class,'throttle'=>\Illuminate\Routing\Middleware\ThrottleRequests::class,'cors'=>\App\Http\Middleware\AccessControlAllowOrigin::class,];}第四步:在路由中添加路由Route::middleware('cors')->组(函数(){//});