处理OmniAuth中的选项

时间:2013-04-02 23:15:26

标签: ruby-on-rails omniauth cors

这不起作用

我有这条路线

match "*path" => 'api/v1/base#options', via: :options

然后我通过浏览器向不同的服务器(也在我的本地机器上)发出请求:

$.get('http://localhost:3005/users/auth/twitter')
XMLHttpRequest cannot load localhost:3005/users/auth/twitter. Origin 127.0.0.1:3001 is not allowed by Access-Control-Allow-Origin. 

这有效

api/v1/base#options与我的其他路线一起正常工作:

  namespace :api do
    namespace :v1 do
      match '*path' => 'base#options', via: :options
      ...
    end
  end

当我在浏览器控制台中尝试此操作时:

$.get('http://localhost:3005/api/v1/stories.json')

有了这个我进入服务器:

Started OPTIONS "/api/v1/stories.json" for 127.0.0.1 at 2013-04-02 18:39:22 -0500
Processing by Api::V1::BaseController#options as */*
  Parameters: {"path"=>"api/v1/stories"}
WARNING: Can't verify CSRF token authenticity
  Rendered text template (0.0ms)
Completed 200 OK in 5ms (Views: 1.2ms | ActiveRecord: 0.0ms)

但是没有使用第一个。我认为因为OmniAuth添加了不允许请求到达给定控制器的中间件。我怎么能解决这个问题?

0 个答案:

没有答案