【问题标题】:angular2-token calls return error status 0angular2-token 调用返回错误状态 0
【发布时间】:2017-08-23 20:23:06
【问题描述】:

我在 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())

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

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    问题已解决,遇到同样问题的人,我就是这样做的:

    实际问题是后端 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 与:

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

    3) 通过 Gemfile 降级版本:

    gem 'rack-cors', '0.4.1'
    

    【讨论】:

      猜你喜欢
      • 2017-02-10
      • 2015-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多