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服务器创建一个重写规则以解决此限制。它会创建一个反向代理来诱使浏览器允许跨域请求。

+0

如果你不想在开发中使用Apache,你也可以使用机架中间件来完成它(https://github.com/cyu/rack-cors) – sailor 2012-04-18 15:26:21