[英]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.