跨域调用Laravel登录路由遇CORS错误,求解决方案
解决Laravel与Next.js跨域CORS问题
针对你Next.js应用调用Laravel登录路由出现的CORS错误,按以下步骤处理:
1. 配置Laravel的CORS规则
打开config/cors.php文件,修改关键配置项:
paths:添加登录路由路径,确保包含'login'allowed_origins:设置为你的Next.js应用域名(开发环境可临时用'*',生产环境需指定具体域名)allowed_methods:包含'GET'(匹配你的请求类型)allowed_headers:加入自定义请求头'x-api-signature'supports_credentials:若需携带Cookie等凭证,设为true
示例配置片段:
return [ 'paths' => ['api/*', 'login'], 'allowed_methods' => ['GET', 'POST', 'PUT', 'DELETE'], 'allowed_origins' => ['http://localhost:3000'], 'allowed_origins_patterns' => [], 'allowed_headers' => ['Content-Type', 'X-API-Signature'], 'exposed_headers' => [], 'max_age' => 0, 'supports_credentials' => true, ];
2. 确保CORS中间件生效
打开app/Http/Kernel.php,将HandleCors中间件添加到web中间件组(你的登录路由属于web路由组):
protected $middlewareGroups = [ 'web' => [ // 保留原有中间件... \Illuminate\Http\Middleware\HandleCors::class, ], // api组配置保持不变... ];
3. 验证请求配置
确认Next.js端请求:
- Laravel服务地址无误
- 自定义头
x-api-signature的拼写与Laravel配置一致(注意大小写一致性)
完成配置后重启Laravel服务,重新测试请求即可解决CORS错误。
内容的提问来源于stack exchange,提问作者desh
相关产品推荐
相关产品推荐

