javascript - rails/jquery/ajax : done callback is not executing

标签 javascript jquery ruby-on-rails ajax

我有工作代码,其中不需要返回值的 AJAX 调用可以正常工作。

Javascript(实际上是 CoffeeScript ):

$.ajax({
      url: "/images/" + image_id + "/" + action,
      type: "GET",
      dataType: 'json'
    }).done( (response) ->
      alert("hello")
      )

在服务器端我有这个:

respond_to do |format|
  format.js {render nothing: true}
end

这工作正常

但是现在我需要返回一个值,所以我将服务器端更改为:

respond_to do |format|
      format.json {render :json => @image.quality}
end

这也执行得很好,服务器端和客户端都没有错误 - 但“done”回调永远不会执行。

我错过了什么?我搜索了很多文档,但我对所发现的内容感到困惑。官方文档http://www.railscook.com/recipes/rails-view-controller-ajax-response-example/说用模板渲染js,但我不需要直接渲染javascript,我只需要在客户端提供一个值。

最佳答案

该死。

问题是 JSON 格式错误。

由于某种原因

format.json {render :json => @image.quality}

不会产生有效的json,实际上,不是完成的回调,但错误回调会触发...(从我的 Angular 来看,首先不包含错误回调是非常糟糕的做法)

所以如果我将其更改为

format.json {render json: @image}

我得到了有效的 json 并且完成回调被触发...

关于javascript - rails/jquery/ajax : done callback is not executing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26566237/

相关文章:

javascript - 将文本字段动态添加到 html 表中

JavaScript/jQuery 间隔在 Internet Explorer 中执行两次

ruby-on-rails - 事件管理员。始终在索引表上方显示顶级过滤器

ruby-on-rails - 如何重新加载由 let 定义的变量

javascript - 获取除特殊元素外的字符串中的html

ruby-on-rails - 在推送到 heroku 后,我的大部分 Assets 突然返回 404

javascript - Ember.js 如何引用 Grunt.js 预编译的 Handlebars 模板?

javascript - 如何删除引用对象的数组对象

javascript - xaxis 定制中的 Highcharts 日期

javascript - Ajax 验证响应数据不是空页