2011-03-08 87 views
0

我不知道如何编写我的控制器来接受来自另一个域的帖子,并在成功时返回一个文本字符串“OK”?如何在rails 3应用程序中通过AJAX接受跨域POST?

有人可以展示一个使用Rails 3控制器和另一个域上会存在的jQuery的例子吗?

谢谢!

$.ajax({ 
    url: "http://localhost:3000/lists", 
    dataType: "jsonp", 
    type: "POST", 
    processData: false, 
    contentType: "application/json", 
    data: myData 
}); 
+0

嗨,我在这里打击相同的概率(但与ajax)...你真的设法使用类型的数据类型jsonp:POST?什么是你使用的jQuery版本? – MrWater 2012-08-09 21:01:57

回答

0

在你Lists控制器,有这样的事情:

def index 
    # do your stuff 

    respond_to do |format| 
     format.js { render :json => "OK".json } 
    end 
end 

你实际上并不需要 “OK” 从Rails的控制器返回。 jQuery会自动检测请求是否成功,并且您可以通过将success: some_function(data)添加到AJAX请求来执行任何操作。

此外,您可以查看有关以JSON here返回数据的更多信息。

0

我不确定Rails控制器部分是否具体,但它应该没关系。您的数据是否需要您进行POST,或者您是否可以使用GET请求?我认为后者更容易解决跨域问题。我已经通过POSTs跨浏览器取得了成功,但Firefox通常不会放弃它。