我正在尝试将 grunt-connect-proxy 添加到使用最新的 yeoman + Angular 生成器的项目中。

但是,当遇到应该转发的路时(例如 127.0.0.1:9000/api/v1),服务器返回此错误:

An error has occurred: {"code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect"}

我按照推荐使用了修改后的 Gruntfile: same as here

我应该如何调试这个?最近有人用 grunt-connect-proxy 遇到过类似的问题吗?

如果您有任何实际可行的解决方案,我也对用于代理 Angular web 应用程序的 api 调用的类似解决方案感兴趣。

谢谢你帮我解决!非常感激!

最佳答案

Gruntfile 很好,错误是由您的后端引起的,即 localhost:3000(可能是 Rails)。

如果是 Rails,则是 CORS 问题。您需要允许 rails 接受来自 grunt 服务器的连接。将 'rack-cors' 添加到您的 gemfile 并在您的 development.rb 配置文件中像这样配置它:

config.middleware.use Rack::Cors do
  allow do
    origins 'localhost:9000'
    resource '*', :headers => :any, :methods => [:get, :post, :options, :delete]
  end
end

检查此链接以获取详细设置,它帮助我使其正常工作。

Working with Angular.js and Rails

关于angularjs - 使用 grunt-connect-proxy 的 Yeoman 返回 ECONNREFUSED 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20092065/

10-12 03:10
查看更多