簡體   English   中英

rails / jquery / ajax:完成的回調未執行

[英]rails/jquery/ajax: done callback is not executing

我的工作代碼中不需要返回值的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

這樣也可以很好地執行,服務器端和客戶端都不會出錯-但是“完成”回調永遠不會執行。

我想念什么? 我搜索了許多文檔,但對發現的內容感到困惑。 官方文檔http://www.railscook.com/recipes/rails-view-controller-ajax-response-example/說使用模板渲染js,但是我不需要直接渲染javascript,我只需要一個值在客戶端。

該死的

問題是JSON格式錯誤。

由於某些原因

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

不會產生有效的json,實際上不是完成的回調,但是會觸發錯誤回調...(從我這一角度來看,很糟糕的做法是首先沒有包含錯誤回調)

因此,如果我將其更改為

format.json {render json: @image}

我得到有效的json並且完成的回調觸發了...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM