我正在开发带有Ruby on Rails API的Ionic(Cordova)应用程序。 我想在登录后使用响应头来返回令牌。 我使用rack-cors
宝石,使跨源请求工作:使用Rack-cors和Grape添加自定义响应标头
application.rb中
config.middleware.insert_after Rails::Rack::Logger, Rack::Cors, :logger => Rails.logger do
allow do
origins '*'
resource '/api/*', :headers => :any, :methods => [:get, :post, :options, :put]
end
end
和葡萄宝石来管理我的API路线。 但我找不到添加标题的方法,因为我添加了rack-cors
。
我尝试这样做:
header('Access-Token', user.token.key)
但它不工作。无论我做什么我结束了这些头:
{缓存控制:“最大年龄= 0,民营,必重新验证”,内容类型: “应用/ JSON”}
任何人都可以帮助我解决这个问题吗?
您可以将这些添加到application_controller.rb并删除您当前的protect_from_forgery。添加'protect_from_forgery::exception,如果:Proc.new {| c | c.request.format!='application/json'} protect_from_forgery with::null_session,if:Proc.new {| c | c.request.format =='application/json'}' – 7urkm3n
如果你在本地工作并且调用rails api,它不应该给你机架线,因为我知道。我只是没有与科尔多瓦的经验。 – 7urkm3n
事实上,我在当地工作。我试图改变我的protect_from_forgery,正如你所建议的,但它给了我众所周知的“Access-Control-Allow-Origin”错误 – Shrolox