我有两个本地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
希望这有帮助!
答案 0 :(得分:4)
出于安全原因,通常不允许跨域AJAX。如果您能够使用它,JSONP是一个选项。如果没有,您可以使用类似flXHR的内容来解决此限制。
祝你好运!
答案 1 :(得分:0)
对我来说,有一个50X / 40X状态回来Chrome / WebKit显示一个名为Access-Control-Allow-Origin错误。
我玩了我的回答,直到我得到201,现在它有效!