Laravel Jetstream+Inertia跳转外部URL遇CORS拦截求助
解决Laravel Jetstream+Inertia跳转外部URL的CORS错误
问题根源
你遇到的CORS错误并非后端CORS配置问题,而是Inertia的请求机制导致:
- 用
redirect()->away()时,Inertia会通过AJAX请求跟随重定向到Paystack的checkout页面 - 但Paystack前端页面不允许跨域AJAX请求(不会返回
Access-Control-Allow-Origin头),因此浏览器拦截了请求
解决方案
放弃服务器端重定向,改用Inertia触发客户端原生跳转,避开AJAX跨域限制。
替换重定向代码
将原有代码:
return redirect()->away("checkout.url.com/9282");
替换为Inertia的客户端定位方法:
use Inertia\Inertia; // ... return Inertia::location("https://checkout.paystack.com/cfgbfg335");
原理说明
Inertia::location()会返回特殊响应,告知前端框架直接调用window.location.href跳转目标URL。这种浏览器原生跳转不会触发AJAX请求,自然不受CORS策略限制。
补充说明
你配置的fruitcake/laravel-cors仅作用于自身Laravel后端接口,无法控制外部网站(如Paystack)的CORS策略,因此调整跳转方式是唯一可行的解决途径。
内容的提问来源于stack exchange,提问作者Leslie Joe
相关产品推荐
相关产品推荐

