angular2-token调用返回错误状态0

时间:2017-08-23 20:23:06

标签: angular token ruby-on-rails-5 rails-api

我在Express服务器上有Rails API应用程序(带有 devise_token_auth )和Angular 4(带有 Angular2-token )。如果我在本地运行,前端呼叫(如.validateToken().signIn())会按预期返回200401。虽然,现在当我部署它们时只返回状态0,它看起来像Angular2-token甚至不会产生任何有效的调用。

我的第一印象是后端CORS的原因, 我实现的完全类似于文档:devise_token_auth/cors或前端的CORS,我补充说:

var cors = require('cors');
..
app.use(cors());
app.options('*', cors())

不幸的是,它没有解决问题。

enter image description here

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

问题解决了,这就是我为那些遇到同样问题的人所做的:

实际问题是后端CORS。当前版本存在很多问题:https://github.com/cyu/rack-cors/issues 所以,

1)我用

更新了 config.ru
use Rack::Cors do
  allow do
    origins '*'
    resource '*',
      :headers => :any,
      :expose  => ['access-token', 'expiry', 'token-type', 'uid', 'client', 'content-type', 'cache-control'],
      :methods => [:get, :post, :options, :delete, :put]
  end
end

2) application.rb with:

config.middleware.insert_before 0, Rack::Cors do

3)通过 Gemfile 降级版本

gem 'rack-cors', '0.4.1'