从sinatra应用程序发送post请求到rails应用程序

我需要从一个sinatra应用程序发送一个POST请求到一个rails应用程序,它将返回一些json。 我在本地测试这个function。 url如下:

Rails app : railsapp.mydomain.com/api/v1.json Sinatra app: sinatraapp.mydomain.com 

在localhost上,url是:

 Rails app: localhost:3000/api/v1.json Sinatra app:localhost 3001 

在我本地运行的sinatra应用程序中,我有以下代码在本地发出POST请求

 $("#submit").click(function(){ $.post("http://localhost:3000/api/v1.json", {email:"",password:""}, function(data) { //Do something with response } ); }); 

此外,请求标头中的Content-Type应为"application/x-www-form-urlencoded" 。 我在Firefox中使用REST Client来测试请求并且它可以正常工作,但在上面的代码中根本没有提出请求。 我的代码中有什么错误?

谢谢

这是作为XSS攻击而停止的。 即使它们位于同一个域中,子域也不同,这就足够了。 有关更多信息,请参阅对子域的AJAX调用是否被视为跨站点脚本? 。

要纠正这个问题,你可以简单地让AJAX命中你的本地控制器,并使用ruby发出请求,这不受上述限制的限制。

您还可以设置此设置:

 jQuery.support.cors = true; 

这使您可以使用jQuery进行跨域调用。 它可能不是最佳解决方案,因为您使用以下请求标头添加漏洞:Access-Control-Allow-Origin。