【问题标题】:How do I accept a cross-domain POST via AJAX in a rails 3 app?如何在 rails 3 应用程序中通过 AJAX 接受跨域 POST?
【发布时间】:2011-03-08 02:43:21
【问题描述】:

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

谁能展示一个使用 Rails 3 控制器和另一个域中存在的 jQuery 的示例?

谢谢!

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

【问题讨论】:

  • 嗨,我在这里遇到了同样的问题(但使用 ajax)......你真的设法使用 dataType jsonp 类型为: POST 吗?你用的是什么jquery版本?

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


【解决方案1】:

在你的 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 的更多信息。

【讨论】:

    【解决方案2】:

    我不确定 Rails 控制器部分的具体情况,但没关系。您发送的数据是否需要您进行 POST,或者您可以使用 GET 请求吗?我认为后者更容易解决跨域问题。我已经在 POST 跨浏览器方面取得了成功,但 Firefox 通常不会停止谈论它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 2019-02-01
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多