我正试图从Ionic应用程序发布到Slack频道,但是我被浏览器中的以下错误阻止了..
XMLHttpRequest cannot load http://hooks.slack.com/services/XXX.
Response for preflight is invalid (redirect)
我相信我已将此范围缩小到修改firebase.json文件,并且我正在尝试修改标头以允许此文件中的CORS。
headers: [ {
5 source : **/*.@(eot|otf|ttf|ttc|woff),
4 headers : [ {
3 key: Access-Control-Allow-Origin,
2 value: *
1 } ]
16 }, {
1 source : **/*.@(eot|otf|ttf|ttc|woff),
2 headers : { [
3 key: Access-Control-Allow-Headers,
4 value: Origin, X-Requested-With, Content-Type, Accept
5 } ]
6 }]
7 }
我非常感谢任何有关如何使其发挥作用的想法。我的修正案基于以下内容。
http://enable-cors.org/server_expressjs.html
https://www.firebase.com/docs/hosting/guide/full-config.html
答案 0 :(得分:2)
我遇到了同样的问题。
经过一些调试后,我意识到我尝试请求的网站使用了HSTS(HTTP-Strict-Transport-Security),因此浏览器会自动将每个HTTP请求重定向到HTTPS,从而打破了预检请求。
考虑到HSTS可以在浏览器上缓存很长时间,因此无法帮助清除缓存或其他方法。如果您使用Chrome来检查这是否对您有影响,可以chrome://net-internals/#hsts
查看。
解决方案是确保只从想要执行CORS的应用程序发出HTTPS请求。
希望这有帮助!