如何在两个Laravel应用间跨URL发送POST请求及排障
问题解答
1. 是否需要在发送端配置cors.php?
不需要。CORS是接收端服务负责处理的跨域权限控制机制,发送端作为请求发起方无需配置CORS相关文件,你当前的CORS问题已经解决,无需改动发送端。
2. 419错误的核心原因及解决方法
419是Laravel的CSRF令牌验证失败,你之前在接收端的CSRF排除配置存在错误:validateCsrfTokens的except参数需要填写接收端自身的路由路径,而非请求来源的域名。
修正接收端的CSRF排除配置:
假设接收端的目标接口路由是/receive,修改bootstrap/app.php中的中间件配置:
->withMiddleware(function (Middleware $middleware) { $middleware->validateCsrfTokens(except: [ 'receive' // 可根据路由定义格式调整为'/receive' ]); })
3. 额外检查项
- 确认接收端的
/receive路由已正确定义为POST方法; - 如果请求需要携带凭证(如Cookie),需将接收端
cors.php中的supports_credentials设为true,同时前端fetch请求添加对应参数:fetch('http://receiving-app-local/receive', { method: 'POST', credentials: 'include', // 其他请求配置 })
内容的提问来源于stack exchange,提问作者pileup
相关产品推荐
相关产品推荐

