laravel解决跨域处理
laravel 跨域处理 ,不用第三方扩展包:
如果你想在Laravel中处理跨域请求而不使用第三方扩展包,你可以手动创建一个中间件来添加必要的CORS头部。以下是实现这一功能的步骤:
-
创建中间件: 使用Artisan命令创建一个新的中间件:
php artisan make:middleware Cors-
这将在
app/Http/Middleware
目录下创建一个名为Cors.php
的文件。 -
编辑中间件: 打开新创建的
Cors.php
文件,并添加以下代码来处理CORS头部:namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;class Cors
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure$next)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*') // 允许的来源域名
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS') // 允许的HTTP方法
->header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Authorization'); // 允许的HTTP头部
}
} -
请根据你的需求调整
Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
的值。 -
注册中间件: 打开
app/Http/Kernel.php
文件,并在$middleware
数组中添加你的Cors
中间件protected $middleware = [
// 其他中间件
\App\Http\Middleware\Cors::class,
]; - 或者,如果你只想对特定的路由应用CORS,可以在
$routeMiddleware
数组中添加 -
protected $routeMiddleware = [
// 其他路由中间件
'cors' => \App\Http\Middleware\Cors::class,
];
-
-
posted @ 2025-02-10 22:03 andydaopeng 阅读(24) 评论(0) 推荐(0) 编辑