CORS请求在Chrome上运行正常但在Safari / Firefox上运行不正常

时间:2018-04-15 23:24:45

标签: laravel firefox safari cors axios

问题

在本地主机上发出登录我的应用程序的CORS请求时,我在Sierra上运行的最新版Safari / Firefox上收到以下错误。

在Chrome上做这件事然而绝对没有任何问题。我正在使用正确启用CORS的Laravel 5.6+。

Safari浏览器

enter image description here

火狐

enter image description here

Firefox网络标签

enter image description here

/ login POST OK,/ user GET NOPE

enter image description here

Chrome /用户获取(注意访问控制允许 - 来源)

enter image description here

但是在Safari / Firefox上做同样的事情,在/user GET上,那个标题丢失了(?)

enter image description here

Laravel 5.6 CORS设置

'supportsCredentials' => false,
'allowedOrigins' => [env('ALLOWED_ORIGINS')],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['Origin', 'Content-Type', 'X-Requested-With', 'Accept', 'Authorization'],
'allowedMethods' => ['*'],
'exposedHeaders' => ['*'],
'maxAge' => 0,

工具

  1. Laravel Mix
  2. Laravel 5.6 +
  3. axios
  4. Vue.js 2
  5. @ websanova / VUE-AUTH
  6. 我也在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;
    

    更新

    我注意到授权承载在Chrome上设置为/user GET,但在Firefox或Safari上没有设置。这很荒谬。这里可能出现什么问题?

1 个答案:

答案 0 :(得分:2)

发现问题:

'exposedHeaders' => ['Authorization'],必须在我的cors.php中明确。

Safari和Firefox并不喜欢

[]['*']。然而Chrome接受了它。怪异

现在,这似乎违反了Chrome的CORS。

并不关心外露接头是否设置正确。 它仍然有效。