我确实很难将现有代码从3.5升级到4.0.5。 这次,当我尝试通过ajax调用将数据加载到表中时遇到错误。这在3.5中确实有效,所以我认为版本4中有所更改。我已经仔细阅读了文档并阅读了升级指南。是否对ajax调用的方式进行了更改,以使我的代码无法像在3.5版本中那样工作? 最后:我正在为jQuery使用包装器。
表构造函数如下:
$("#PO-table").tabulator({
...columns etc
ajaxResponse: function (url, params, response) {
//url - the URL of the request
//params - the parameters passed with the request
//response - the JSON object returned in the body of the response.
return response.d; //Return the d Property Of a response json Object
},
});
然后我通过添加很多参数以及 先前声明的ajaxconfig
var ajaxConfig = {
type: "POST", //set request type to Position
contentType: 'application/json; charset=utf-8', //set specific content type
};
$("#PO-table").tabulator("setData", "PurchaseOrder.aspx/Fetch_PurchaseOrders", "{'POnum': '" + ponum + "', 'supplier': '" + supp + "', 'fromDate': '" + from + "', 'toDate': '" + to + "', 'spareNumber': '" + spare + "', 'isDelivered': '" + isdelivered + "', 'isConfirmedOrder': '" + true + "', 'isUnconfirmedOrder': '" + true + "', 'isExactPOnum': '" + false + "', 'isExactSupp': '" + false + "'}", ajaxConfig);
答案 0 :(得分:1)
默认情况下,制表器将POST请求中的数据作为表单数据发送,如果要以JSON形式发送,则需要使用 ajaxContentType 选项
var table = new Tabulator("#example-table", {
ajaxURL:"http://www.getmydata.com/now", //ajax URL
ajaxConfig:"POST", //ajax HTTP request type
ajaxContentType:"json", // send parameters to the server as a JSON encoded string
});
这会将数据编码为JSON对象并设置适当的标头。
在版本4.1中添加了 ajaxContentType 选项,以使用户可以更轻松地将请求发送回具有各种内容类型的服务器