POST请求 - 预检的Firebase -Response无效(重定向) - CORS

时间:2015-11-10 20:28:17

标签: angularjs http post firebase ionic

我正试图从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

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。

经过一些调试后,我意识到我尝试请求的网站使用了HSTS(HTTP-Strict-Transport-Security),因此浏览器会自动将每个HTTP请求重定向到HTTPS,从而打破了预检请求。

考虑到HSTS可以在浏览器上缓存很长时间,因此无法帮助清除缓存或其他方法。如果您使用Chrome来检查这是否对您有影响,可以chrome://net-internals/#hsts查看。

解决方案是确保只从想要执行CORS的应用程序发出HTTPS请求。

希望这有帮助!