Ali*_*ani 5 safari firefox cors laravel axios
问题
当发出 CORS 请求登录到本地主机上的应用程序时,我在 Sierra 上运行的最新版本的 Safari/Firefox 上收到以下错误。
然而,在 Chrome 上执行此操作绝对可以正常工作,没有任何问题。我正在使用 Laravel 5.6+,并正确启用了 CORS。
苹果浏览器
火狐浏览器
火狐网络选项卡
/login POST OK,/user GET NOPE
Chrome /user GET(注意 Access-Control-Allowed-Origin)
但是在 Safari/Firefox 上执行同样的操作,在/userGET 上,该标头丢失了(?)
Laravel 5.6 CORS 设置
'supportsCredentials' => false,
'allowedOrigins' => [env('ALLOWED_ORIGINS')],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['Origin', 'Content-Type', 'X-Requested-With', 'Accept', 'Authorization'],
'allowedMethods' => ['*'],
'exposedHeaders' => ['*'],
'maxAge' => 0,
Run Code Online (Sandbox Code Playgroud)
工具
我还在 axios 上将以下设置设置为默认值。这段在最新的 Chrome 上运行的代码没有理由在最新的 FF/Safari 上不起作用。几个小时以来,我一直在用头撞击这个问题,但无济于事。
window.axios = axios;
window.axios.defaults.headers.post['Content-Type'] = 'application/json';
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
window.axios.defaults.baseURL = baseURL;
Run Code Online (Sandbox Code Playgroud)
更新
我注意到授权承载在 Chrome 上设置为/userGET,但在 Firefox 或 Safari 上则不然。这是荒谬的。这里可能出了什么问题?
发现问题:
'exposedHeaders' => ['Authorization'],必须在我的cors.php.
[]或者['*']Safari 和 Firefox 不喜欢。然而 Chrome 接受了它。诡异的
现在,这似乎是 Chrome 违反 CORS 的行为。
它不关心暴露标头是否设置正确。它仍然有效。
| 归档时间: |
|
| 查看次数: |
4465 次 |
| 最近记录: |