2015-11-10 49 views
3

我试图张贴到从离子应用松弛的通道,但是我被阻止在浏览器中出现以下错误..POST请求 - 火力地堡 - 响应预检无效(重定向) - CORS

XMLHttpRequest cannot load http://hooks.slack.com/services/XXX. 
Response for preflight is invalid (redirect) 

我相信我缩小了这个范围,修改了firebase.json文件,并且试图修改头文件以允许CORS在这个文件中。

headers: [ { 
5  source : **/*[email protected](eot|otf|ttf|ttc|woff), 
4  headers : [ { 
3  key: Access-Control-Allow-Origin, 
2  value: * 
1  } ] 
16  }, { 
1  source : **/*[email protected](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

+2

我认为这个问题是http://hooks.slack.com/services/XXX不上火力地堡主机发送CORS标头,而不是网站(如果它是一个离子的应用程序,你甚至有任何那里有静态资产?)。给'https'试一下,而不是'http',它可能会起作用,但这取决于服务 –

回答

2

我遇到类似的问题,用同样的消息。

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

考虑到HSTS可以在浏览器上缓存很长时间,所以它不会帮助清除缓存或其他方法。如果您使用Chrome浏览器检查这是否会影响您,您可以在chrome://net-internals/#hsts进行检查。

解决方案是确保只有希望执行CORS的应用程序正在进行HTTPS请求。

希望这会有所帮助!


+0

Hi @llekn你能告诉我如何解决这个问题吗? – n179911

+0

正如我在回答中所说的那样,解决方案是仅使HTTPS请求 – llekn