我有这条路线
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添加了不允许请求到达给定控制器的中间件。我怎么能解决这个问题?