2013-05-07 163 views
0

我想渲染一個局部調用一個ajax函數並將它呈現在div中。用ajax和json響應部分渲染

在下面的代碼中,request.responseText給了我我想要的html,但爲什麼這個響應會進入錯誤函數並且不成功? 看起來很簡單,但我在這裏錯過了一些東西。 員額響應狀態代碼是 「200 OK」 在鉻的檢測元件

JS代碼:

$.ajax({ 
     url: "/upload/get_detail.json", 
      type: "POST", 
      dataType: "json", 
      data: { id: id }, 
      success: function(result) { 
       $('.some-label').html(result); 
      }, 
      error: function (request, status, error) { 
       alert(request.responseText); 
      } 
     }).done(function() { 
      //some code 
     }); 

控制器:

def get_detail 
    @logs = Detail.where('category_id = ?', params[:id].to_i).limit(20) 
    render :partial => "/category/detail", :layout=> false 
    end 
+1

responseText的外觀如何? – cfs 2013-05-07 17:33:03

+2

很可能你的*「html」*不是json。 – 2013-05-07 17:33:51

+0

這是一個HTML。其實很好的問題,因爲我忘了包括重要的部分,錯誤:'Unexpected token <' – tostasqb 2013-05-07 17:34:57

回答

2

您是從服務器發送的HTML,但你已經配置您的jQuery.ajax調用期望JSON。將dataType屬性更改爲html,它應該可以工作。