连接2个RestAPI调用的输出,并在Jquery Datatables上显示结果



为了在线克服Sharepoint的5000视图阈值,我尝试进行2次ajax调用,连接结果并显示在Jquery Datatables中。但是,下面的代码没有提供任何输出或错误。请提供建议。

var results;
var allResults = [];
$(document).ready(function () {
load();
});
function load() {
var call1 = $.ajax({
url: "SPO_Site/_api/web/lists/getbytitle('List')/items?$select=Created&$top=5000&$skip=0&$orderby=Date desc",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: successHandler,
error: errorHandler
});
var call2 = $.ajax({
url: "SPO_Site/EKDL/_api/web/lists/getbytitle('List')/items?$select=Created&$top=5000&$skip=5000&$orderby=Date desc",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: successHandler,
error: errorHandler
});
function successHandler(a) {
var jsonObject = JSON.parse(a.body);
results = jsonObject.d.results;
if (allResults.length > 0)
allResults = allResults.concat(results);
else
allResults = results;        
}
function errorHandler(data, errorCode, errorMessage) {
console.log("Could not complete call: " + errorMessage);        
};
$.when(call1, call2).done(function(a1, a2){
console.log(allResults);
$('#table_id').DataTable({
data:allResults ,
columns: [{ data: "Created" }]
});
});  
};

下面的代码修复了这个问题。

var results;
var allResults = [];
$(document).ready(function () {
$.fn.dataTable.moment( 'DD-MM-YYYY' ); 
load();
});
function load() {
var year2021 = $.ajax({    
url: "<<List 1 API call>>",    
type: "GET", dataType: "json", headers: {"accept": "application/json;odata=verbose"},    
success: mySuccHandler, error: myErrHandler}); 
var year2020 = $.ajax({    
url: "<<List 2 API call>>",    
type: "GET", dataType: "json", headers: {"accept": "application/json;odata=verbose"},    
success: mySuccHandler, error: myErrHandler}); 
function mySuccHandler(a) {
results = a.d.results;
if (allResults.length > 0)
allResults = allResults.concat(results);
else
allResults = results;        
}
function myErrHandler(data, errorCode, errorMessage) {
console.log("Could not complete call: " + errorMessage);        
};

$.when(year2021, year2020).done(function(a1, a2){
// console.log(allResults);
$('#table_id').DataTable({
data:allResults,
columns: [
{ data: "Field 1" },
{ data: "Field 2" }
]
});
});  
};

最新更新