我在开发离子应用程序时不断收到以下错误。这是后端不允许的授权头。
尝试的解决方案:
- 我在这里使用chrome cors插件:https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
- 以及启动chrome禁用Web安全,如下所示
打开-a Google\ Chrome浏览器--参数--禁用网络安全--用户数据目录
- 设置一个离子代理,如在这篇文章:https://stackoverflow.com/a/41863260/838355
但我仍然无法绕过cors检查,错误仍然存在。需要帮助。
5条答案
按热度按时间4si2a6ki1#
如果你想在Mac上的chrome上禁用CORS,你可以在你的终端/项目上运行这个命令。它将打开chrome的一个新示例,这个示例的所有选项卡都将禁用CORS。所以你可以在这里运行你的应用程序进行测试。我希望你这样做只是为了测试你的API,你知道这不是一个永久的修复。另外,记住这是禁用你的网络安全。所以我认为这是一个很好的选择测试你的API时,你不担心安全,你会有所有的网络安全的地方,当你要运行你的应用程序在另一个环境,如开发,和qa,和prod。
qc6wkl3g2#
检查你的Chrome浏览器版本。可能是有bug的版本。以下是5月发布的关于这个功能不起作用的bug报告:https://bugs.chromium.org/p/chromium/issues/detail?id=857032
几周前我也遇到过同样的问题,以下是我如何设法禁用CORS:首先下载Chrome浏览器或Chrome金丝雀浏览器,这实际上是非常好的开发人员(我的用户 chrome ,但它是由你决定):https://www.google.com/intl/en/chrome/canary/或https://download-chromium.appspot.com/
然后:
open -a ChromiumOrCanaryPathHere --args --disable-web-security --user-data-dir"
现在它应该工作了。你可能会在窗口的顶部看到关于安全的警告信息-没关系。
可能只是更新chrome到最新版本会有帮助,但我更喜欢使用单独的浏览器,因为它更安全,因为我可以将不安全的浏览器从默认浏览器中隔离出来。
tkclm6bt3#
在终端中输入:
sdnqo3pr4#
CORS需要从后端进行处理,大多数情况下使用此扩展,它在https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?utm_source=chrome-ntp-icon上工作,但后端仍需要处理离子应用的CORS
bpzcxfmw5#
给2022年阅读这篇文章的人提个醒
这个技巧仍然有效,但你必须多做一步。
open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security
打开Chrome(或任何Chrome衍生产品,如Canary)总之,根据我的经验,您不能再仅仅从终端打开Chrome,然后期望CORS旁路工作。
干杯
我的机器正在使用谷歌Chrome金丝雀版本106.0.5223.0(官方版本)金丝雀(arm 64)截至撰写本文。