我正在做一个标准的ajax请求,我有一个rails控制器动作:
def up_vote
resource.votes.increment!
render :nothing => true
end
这不会触发我的jquery ajax成功回调---但它会触发statusCode:200回调,但我想使用成功而不是那样。铁路渲染文档说使用“head”而不是render:nothing =>是的,所以我试着做头:好的,但结果会相同。
如何让此方法触发成功回调?
答案 0 :(得分:6)
我在使用Rails 3.2的head :ok
样式响应时遇到了同样的问题。我通过在dataType: "json"
电话中将dataType: "text"
更改为$.ajax
来解决此问题。
如果您指定需要JSON响应,jQuery似乎不会调用成功回调,但返回的数据不会验证为JSON。
这个问题给了我一些提示,我需要弄清楚:jQuery.ajax success callback function not executed
答案 1 :(得分:5)
我通过呈现json响应来修复此错误。render :json => { :success => "success", :status_code => "200" }
答案 2 :(得分:0)
老问题,但它在搜索引擎中很高,所以给它一个答案:)
你可以这样做:
def up_vote
resource.votes.increment!
render :nothing => true
respond_to do |format|
format.json { render json: {} , status: 200 }
end
end