Ember CLI 和 Rails:代理到 http://localhost:3000 时出错

Ember CLI and Rails: Error proxying to http://localhost:3000

我正在关注 this tutorial Ember CLI 和 Rails。我被困在你应该在控制台中使用以下命令加载 Book 模型数据的位置:

App.store.findAll('book');

未检索到任何数据,Ember 终端日志显示此错误:

Error proxying to http://localhost:3000
connect ECONNREFUSED 127.0.0.1:3000
Error: connect ECONNREFUSED 127.0.0.1:3000
    at Object.exports._errnoException (util.js:890:11)
    at exports._exceptionWithHostPort (util.js:913:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1061:14)
GET /books - - ms - -

然而,当我访问 http://localhost:3000/books(Rails 后端)时,我得到了所有书籍的正确 JSON 响应。为什么 Ember 应用程序无法检索此数据,我该如何解决?

有很多东西需要看。

  1. 尝试在您的 embers config/environment.js 中针对每个环境适当 URL 和设置进行设置。更多信息 here.

      ENV.contentSecurityPolicy = {
        'default-src': "'none'",
        'script-src': "'self'",
        'font-src': "'self'",
        'connect-src': "'self' http://localhost:3000",
        'img-src': "'self' data:",
        'style-src': "'self' 'unsafe-inline'",
        'media-src': "'self'"
    };
    
  2. 并且您还需要解释 Rails 应用程序接受 rails 应用程序之外的连接。 CORS。查找 this gem.

重新启动 Rails 服务器:

rails s --binding 0.0.0.0

然后重新启动 ember 服务器。