我正在尝试从 Ionic 应用程序发布到 Slack channel ,但是浏览器中出现以下错误阻止了我。
XMLHttpRequest cannot load http://hooks.slack.com/services/XXX.
Response for preflight is invalid (redirect)
我相信我已经将范围缩小到修改 firebase.json 文件,并且正在尝试修改 header 以允许此文件中存在 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
最佳答案
我遇到了类似的问题,并且消息完全相同。
经过一些调试,我意识到我尝试请求的网站使用了 HSTS ( HTTP-Strict-Transport-Security ),因此浏览器自动将每个 HTTP 请求重定向到 HTTPS,从而破坏了预检请求。
请考虑到 HSTS 可以在您的浏览器上缓存很长时间,因此清除缓存或其他方法无济于事。如果您使用 Chrome,可以访问 chrome://net-internals/#hsts
检查这是否对您产生影响。
解决方案是确保想要执行 CORS 的应用程序仅发出 HTTPS 请求。
希望这有帮助!
关于angularjs - POST 请求 - Firebase - 预检响应无效(重定向) - CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638970/