jQuery的Ajax的POST到Rails 3.2.2不被访问控制允许来源允许
问题描述:
我有一个简单的阿贾克斯帖子在Heroku上运行的导轨支架项目:jQuery的Ajax的POST到Rails 3.2.2不被访问控制允许来源允许
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"> </script>
</head>
<body>
<script>
$(document).ready(function(){
$.ajax({
type: 'POST', url: "http://herokuserver/images.json",
data: { image: { name: "johngalt1" } }
});
});
</script>
</body>
因为它原来使用JavaScript控制台在Chrome中,我得到:
XMLHttpRequest cannot load http://herokuServer/images.json. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.
然而,当我去在Heroku上的新纪录已与NAME =>“johngalt1”创建的Rails应用程序。从我读过的所有内容中,我认为javascript的跨域问题会阻止创建记录,并要求我使用json-p或CORS?或者JavaScript的跨域问题只会阻止通过JavaScript从服务器接收数据?
答
它只能防止浏览器接收数据。所以如果你不需要这篇文章的回复,你应该没问题。
编辑 - 当我在本地开发时,我在我的Mac上为Apache2服务器创建一个重写规则以解决此限制。它会创建一个反向代理来诱使浏览器允许跨域请求。
如果你不想在开发中使用Apache,你也可以使用机架中间件来完成它(https://github.com/cyu/rack-cors) – sailor 2012-04-18 15:26:21