2014-02-07 42 views
0

我很难找出为什么这不起作用...所以jsfiddle将工作。jQuery DataTables请求未知参数

jsfiddle working

现在的jsfiddle工作,因为我已经创建了一个变种正是以console.log(data)代码下面是什么产生。

$(document).ready(function() { 
    $("#<%= ddlProduct.ClientID %>").change(function (e) { 
     var P_ID = $("#<%= ddlProduct.ClientID %>").val(); 
     $.ajax({ 
      headers: { 
       Accept: "*/*" 
      }, 
      type: "POST", 
      url: "../service/product.asmx/GetProduct", 
      data: '{"jsondata" : {"P_ID" : "' + P_ID + '"}}', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg, status, metaData) { 
       var data = msg.d.P_ID; 
       buildMyDatatable(data); 
      }, 
      error: function (ex, status) { 
       //alert(ex.responseText); 
       alert("error"); 
      } 
     }); 
    }); 

    function buildMyDatatable(data) { 
     console.log(data); 
     $("#table_id").dataTable().fnDestroy(); 
     $('#table_id').dataTable({ 
      "bProcessing": true,     
      "aoColumns": [ 
        { mData: "Q_ID"}, 
        { mData: "Business" }, 
        { mData: "Product" }, 
        { mData: "QuestionType" }, 
        { mData: "Question" }, 
        { mData: "Answer" }, 
        { mData: "AskBy" }, 
        { mData: "AnsBy" }, 
        { mData: "AnsByEmail" }, 
        { mData: "DateAsk" }, 
        { mData: "DateAns" } 
       ], 
       "aaData": data, 
     }); 
    } 
}); 

我的问题是,为什么var data = server.hardcoded.response工作VS使用实际的Ajax响应时,它不工作?

当使用ajax响应时,我得到这个错误。

DataTables warning (table id = 'table_id'): Requested unknown parameter 'Q_ID' from the data source for row 0 

回答

0

我已经解决了这个问题。

var data = $.parseJSON(data); 

本质上,JavaScript将它作为字符串传递而不是对象。

相关问题