问题
在本地主机上通过CORS请求登录我的应用程序时,我在运行Sierra的最新版本的Safari / Firefox上遇到以下错误。
但是在Chrome上执行相同的操作却没有任何问题。我使用启用了CORS的Laravel 5.6+。
Safari
Firefox
Firefox网络选项卡
/login POST OK,/user GET NOPE
Chrome /user GET(注意Access-Control-Allowed-Origin)
但是在Safari / Firefox上执行相同的操作时,在/user
GET中,该标头缺失(?)
Laravel 5.6 CORS设置
'supportsCredentials' => false,
'allowedOrigins' => [env('ALLOWED_ORIGINS')],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['Origin', 'Content-Type', 'X-Requested-With', 'Accept', 'Authorization'],
'allowedMethods' => ['*'],
'exposedHeaders' => ['*'],
'maxAge' => 0,
工具
- Laravel Mix
- Laravel 5.6+
- axios
- Vue.js 2
- @websanova/vue-auth
我还将以下内容设置为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请求会设置Authorization Bearer,但在Firefox或Safari上却没有。这太荒谬了。可能出了什么问题?