2017-08-14 127 views
0

My Ember应用程序在本地计算机上运行良好。我可以从另一台电脑加载Ember页面,并使用浏览器(例如here)单独加载后端数据,但Ember不能;它表示ERR_CONNECTION_REFUSED并且不检索数据来填充列表/下拉菜单/等。设置服务器访问端口? CORS?

最初,即使在本地,我也遇到了很多PUT消息的麻烦,并且最终建立了CORS规则来尝试启用所有功能,但即使这样也无济于事。

发生了什么事?为什么Ember无法获取在另一个选项卡中的相同浏览器没有问题的数据?

+2

你可以看看你的浏览器的开发工具中的网络标签,看看请求的去向吗? – aalimovs

回答

1

这不是Ember无法获取数据。它的浏览器不允许向其他域发送请求。不是所有的请求,但。一些“简单”(限于GET,HEAD和POST方法以及一小部分允许的头文件)请求可以工作。 MDN has a big article about CORS。为了解决这个问题,你的后台应该接受OPTIONS方法,包括下列头的对策:

Access-Control-Allow-Origin: http://frontend.domain 
Access-Control-Allow-Methods: POST, GET, OPTIONS 
Access-Control-Allow-Headers: * 
Access-Control-Max-Age: 86400 

取决于语言/框架,您使用的后台开发,你可以找到库/插件/插件,帮助管理CORS头文件。我建议使用这些。

0

Oooh对我来说是愚蠢的......我开始的教程(让我能够路由到REST子路线)在127.0.0.1的application.js中有一个主机重写,这不起作用非本地主机当然。

这是一件要检查的事情:app/adapter/application.js是否有“主机”条目,它是什么?