簡體   English   中英

Ajax成功處理程序-數據未定義

[英]Ajax success handler - data is undefined

這是我提出ajax請求的方式

  #action
  def get_item
    if request.get?
      binding.pry  #it always stop here, so it's working
      item = Item.where(...)
      unless item
        item = Item.new
        # .....
      end
      respond_to do |format| 
        format.json { render(json: item) } 
      end
    elsif request.post?
       # ......
    end
  end

  #view
     $.ajax({
          type: "GET",
          url: "/contr/get_item",
                data: {key1: "value1"},
                //datatype: "json",
                success: function(data){
                  console.log("ajax success, data -> " + data[0]);
                    }
             });

盡管執行了get_item的代碼,但是頁面上的data值始終是undefined

我錯過了什么?

ps請注意,請求是通過 json從服務器發送回的。 我可以通過單擊“ F12”並轉到“網絡”標簽,通過“調試工具”在Chrome中看到它。

嘗試這個:

 def get_item
   if request.get?
     item = Item.where(...)
     unless item
       item = Item.new
       # .....
     end
     render :json => item.to_json
   elsif request.post?
    #...
   end
 end

視圖

   $.ajax({
      type: "GET",
      url: "/contr/get_item",
            data: {key1: "value1"},
            //datatype: "json",
            success: function(data){
              console.log("ajax success, data -> " + data[0]);
                }
         });

您的URL需要告訴您要使用的格式。 在您的情況下,它應以.json結尾,以便在json中進行響應。

#view
   $.ajax({
        type: "GET",
        url: "/contr/get_item.json",

暫無
暫無

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

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