我很难弄清楚为什么这不起作用......所以jsfiddle会起作用。
现在jsfiddle正常工作,因为我已经创建了一个与下面代码中的console.log(data)
完全相同的var。
$(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
在使用实际的ajax响应时无效?
使用ajax响应时出现此错误。
DataTables warning (table id = 'table_id'): Requested unknown parameter 'Q_ID' from the data source for row 0
答案 0 :(得分:0)
我已经解决了这个问题。
var data = $.parseJSON(data);
固有的JavaScript将它作为字符串而不是对象传递。