我在Express服务器上有Rails API应用程序(带有 devise_token_auth )和Angular 4(带有 Angular2-token )。如果我在本地运行,前端呼叫(如.validateToken()
和.signIn()
)会按预期返回200
或401
。虽然,现在当我部署它们时只返回状态0
,它看起来像Angular2-token甚至不会产生任何有效的调用。
我的第一印象是后端CORS的原因, 我实现的完全类似于文档:devise_token_auth/cors或前端的CORS,我补充说:
var cors = require('cors');
..
app.use(cors());
app.options('*', cors())
不幸的是,它没有解决问题。
有什么建议吗?
答案 0 :(得分:0)
问题解决了,这就是我为那些遇到同样问题的人所做的:
实际问题是后端CORS。当前版本存在很多问题:https://github.com/cyu/rack-cors/issues 所以,
1)我用
更新了 config.ruuse 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'