3

我正在执行标准的 ajax 请求,并且我有一个 rails 控制器操作:

def up_vote
  resource.votes.increment!
  render :nothing => true
end

这不会触发我的 jquery ajax 成功回调---但是它会触发 statusCode: 200 回调,但我想使用成功而不是那个。轨道渲染文档说使用“head”而不是 render :nothing => true,所以我尝试使用 head :ok,但结果相同。

如何使此方法触发成功回调?

4

3 回答 3

8

我在使用head :okRails 3.2 的样式响应时遇到了同样的问题。dataType: "json"我通过更改为dataType: "text"在我的$.ajax通话中修复了它。

如果您指定想要 JSON 响应,jQuery 似乎不会调用成功回调,但返回的数据不会验证为 JSON。

这个问题给了我需要弄清楚的提示:jQuery.ajax success callback function not executed

于 2012-12-17T18:16:42.103 回答
5

我通过呈现 json 响应修复了这个错误。render :json => { :success => "success", :status_code => "200" }

于 2013-04-11T08:49:14.073 回答
3

老问题,但在搜索引擎中很高,所以给它一个答案:)

你可以这样做:

def up_vote
  resource.votes.increment!
  render :nothing => true

  respond_to do |format|
    format.json  { render json: {} , status: 200 }
  end
end
于 2017-02-02T22:25:05.160 回答