基本信息
文件名称:laravel怎么设置跨域(两种方法).docx
文件大小:16.1 KB
总页数:3 页
更新时间:2025-05-21
总字数:约1.65千字
文档摘要

laravel怎么设置跨域(两种方法)

在前后端分离的项目中,前端请求后端接口时可能会遇到跨域的问题。其中,一个典型的场景是:前端项目运行在http://localhost:8080,而后端项目运行在http://localhost:8000,这时候就需要设置跨域。

在Laravel中,要设置跨域可以采用以下两种方法。

中间件方式

先创建一个中间件CorsMiddleware:

phpartisanmake:middlewareCorsMiddleware

在CorsMiddleware中处理跨域:

php

namespaceApp\Http\Middleware;

useClosure;

classCorsMiddleware

publicfunctionhandle($request,Closure$next)

$origin=$request-header(Origin):*

header(Access-Control-Allow-Origin:.$origin);

header(Access-Control-Allow-Headers:Origin,Content-Type,Authorization

header(Access-Control-Allow-Methods:GET,POST,PUT,DELETE,OPTIONS

return$next($request);

}

该中间件会在Http/Kernel.php中的$middleware数组中注册:

protected$middleware=[

//...

\App\Http\Middleware\CorsMiddleware::class,

];

这时候Laravel将在响应头中添加Access-Control-Allow-Origin等跨域相关的信息。

Laravel-cors扩展包

其实,Laravel社区已经有许多开源扩展包可以用来处理跨域问题。比如,laravel-cors,它提供了一些配置项来设置跨域请求。

首先,安装扩展包:

composerrequirebarryvdh/laravel-cors

接着,在config/app.php中的providers数组中注册服务提供者:

providers=[

//...

Barryvdh\Cors\ServiceProvider::class,

],

最后,发布配置文件:

phpartisanvendor:publish--provider=Barryvdh\Cors\ServiceProvider

这时候,可以在config/cors.php中配置跨域请求:

return[

|--------------------------------------------------------------------------

|LaravelCORSOptions

|--------------------------------------------------------------------------

|Theallowed_methodsandallowed_headersoptionsarecase-insensitive.

allowed_origins=[*],

allowed_origins_patterns=[],

allowed_headers=[*],

allowed_methods=[*],

exposed_headers=[],

max_age=0,

supports_credentials=false,

];

按照需求进行相应的配置即可。

以上就是在Laravel中设置跨域的两种方法,选择一种适合自己的即可。