如何在rails 3应用程序中通过AJAX接受跨域POST?

时间:2011-03-08 02:43:22

标签: ruby-on-rails ajax ruby-on-rails-3 jquery

我不知道如何编写我的控制器来接受来自另一个域的帖子并在成功时返回文本字符串“OK”?

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

谢谢!

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

2 个答案:

答案 0 :(得分:0)

Lists控制器中,有类似的内容:

def index
   # do your stuff

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

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

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

答案 1 :(得分:0)

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