Access-Control-Allow-Origin问题

时间:2011-08-18 20:41:20

标签: ruby-on-rails-3 jquery

我有两个本地rails应用程序,我想彼此交谈以进行测试......一个在端口3000上运行,另一个在9292上运行。

但是当我从localhost:3000发出一个ajax请求到localhost:9292时我一直遇到这个问题:

Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.

有关如何解决这个问题的想法吗?

我正在使用一个简单的Sinatra应用程序来接收(仅用于测试目的)JSON请求。下面是我如何让两个rails应用程序在localhost上相互通信(一个在端口3000上,另一个在端口9292上) 工作代码

before do
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
  headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-Prototype-Version, X-CSRF-Token'
end

after do
  headers['Access-Control-Allow-Origin'] = 'http://localhost:3000/'
end

希望这有帮助!

2 个答案:

答案 0 :(得分:4)

出于安全原因,通常不允许跨域AJAX。如果您能够使用它,JSONP是一个选项。如果没有,您可以使用类似flXHR的内容来解决此限制。

祝你好运!

答案 1 :(得分:0)

对我来说,有一个50X / 40X状态回来Chrome / WebKit显示一个名为Access-Control-Allow-Origin错误。

我玩了我的回答,直到我得到201,现在它有效!