Ruby on rails 我在哪里应用';访问控制允许原点';rails应用程序中的标头
我正在尝试使用ember.js作为客户端,通过rails应用程序中的omniauth链接到第三方身份验证页面。我可以将服务器重定向到正确的url,但无法将客户端发送到该url(导致服务器在请求阶段无限期挂起)。我的问题是,我需要在我的应用程序中的某个地方设置Ruby on rails 我在哪里应用';访问控制允许原点';rails应用程序中的标头,ruby-on-rails,ember.js,http-headers,cors,access-control,Ruby On Rails,Ember.js,Http Headers,Cors,Access Control,我正在尝试使用ember.js作为客户端,通过rails应用程序中的omniauth链接到第三方身份验证页面。我可以将服务器重定向到正确的url,但无法将客户端发送到该url(导致服务器在请求阶段无限期挂起)。我的问题是,我需要在我的应用程序中的某个地方设置访问控制允许来源头,但我不确定在哪里。我目前在我的应用程序\u controller.rb中有此(非工作)设置: class ApplicationController < ActionController::API # Force
访问控制允许来源
头,但我不确定在哪里。我目前在我的应用程序\u controller.rb中有此(非工作)设置:
class ApplicationController < ActionController::API
# Force to wants JSON for API
before_action :api_request_settings, :cors_preflight_check
after_action :cors_set_access_control_headers
def cors_preflight_check
p 'hits cors preflight check'
if request.method == :options
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Max-Age'] = '1728000'
render :text => '', :content_type => 'text/plain'
end
end
def api_request_settings
p request.headers
request.format = :json
end
def cors_set_access_control_headers
p 'hits cors acces set control headers'
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Max-Age'] = "1728000"
end
class ApplicationController'',:content\u type=>'text/plain'
结束
结束
def api_请求_设置
p请求头
request.format=:json
结束
def cors_设置_访问_控制_标题
“点击cors访问集控制标题”
标题['Access-Control-Allow-Origin']='*'
标题['Access-Control-Allow-Methods']='POST、GET、OPTIONS'
标题['Access-Control-Allow-headers']='*'
标题['Access-Control-Request-Method']='*'
标题['Access-Control-Max-Age']=“1728000”
结束
我做错了什么?我应该将这些标题放在哪里才能将我的客户发送到登录页?我们正在使用一个GEM,它在机架中处理:我正在使用这个GEM的可能副本。实际上,我认为问题出在客户端,因为我试图将第三方API的来源重定向到外部授权url。我的问题的现状是什么