Laravel 8 跨域问题

想问大家使用 Laravel 8 的时候是如何解决跨域问题的。

在网上查我看大部分都是自己编写一个 Cors 的中间件来处理。

我看到 Laravel 8 配置中自带有 cors 的配置文件,但好像不太稳定有时候可以,有时候不行

相同的一个请求,我用 chrome 就跨域
Laravel 8 跨域问题
开无痕模式后就不跨域了
Laravel 8 跨域问题

在这里想问一下大家在 Laravel 8 中都怎么处理跨域

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12
陈先生

原本就支持 用api前缀即可 用api路由组的 原生支持

3年前 评论
cangsongbayu (楼主) 3年前
陈先生 (作者) 3年前

我是写在api.php的路由,还是报跨域,请问你解决了吗,怎么解决的

2年前 评论

laravel 默认使用的是 fruitcake/laravel-cors 包来处理跨域。如果要访问受保护的路由,就需要确保在 cookie 中有 XSRF-TOKEN。然后浏览器在发送请求的时候,就会把 cookie 放在请求头中,发送给后端。

file

补充一点:在 config/cors.php 中可以设置受保护的路由。

file

2年前 评论

贴一下我的配置吧。 config/cors.php

    'paths' => ['api/*', 'sanctum/csrf-cookie', '*'],

    'allowed_methods' => ['*'],

    'allowed_origins' => explode(',', env('ALLOWED_CORS_ORIGINS', '')),

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'exposed_headers' => ['*'],

    'max_age' => 0,

    'supports_credentials' => false,
2年前 评论

浏览器缓存吧,强制刷新试试?ctrl/ ⌘+shift+R

2年前 评论
xianyunyehe

把你要 携带的header的key加到配置里。刷新配置

2年前 评论

时好时坏 就说明你跨域的中间件在某些时候会出错!

2年前 评论

感觉和 laravel 框架没关系,既然你开无痕能跨域,可能和前端 guard 有关,或者浏览器因为安全性的拦截

2年前 评论
lol173
php artisan config:cache

配置需要更新缓存

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!