这里我对AJAX有一个要求,我向url(UpdateURL)
提供了一个url param.
成功案例我将打电话给dataTable(called loadGrid()),
在这里,我需要将同一个url(UpdateURL)
调用到loadGrid()
,同时我调用两次url(UpdateURL)
,这会导致重复请求。
任何人都可以帮助我如何使用url(UpdateURL)
单次时间并避免重复请求。对困惑感到抱歉。
这是我的代码,
$("#UploadButton").click(function(){
$("#idLoading").show();
var UpdateURL="some url";
$.ajax({
type: "post",
url: UpdateURL, // calling first time
dataType: "json",
cache : false,
success: function(response) {
loadGrid(UpdateURL); // calling second time
$("#idLoading").hide();
},
error: function (xhr, status) {
$("#idLoading").show();
timeout_trigger();
}
});
});
function loadGrid(url){
$.getJSON(url,function (output)
{
try
{
var pdlJsonObj = output.aaData;
var tdata = $("#IdDatatble").dataTable({
"aaData": pdlJsonObj,
"bDestroy": true,
"sPaginationType": "full_numbers",
"aaSorting": [],
"fnCreatedRow": function (nRow, aData, iDisplayIndex, iDisplayIndexFull)
{
$(nRow).attr('id', iDisplayIndex);
},
"fnInitComplete": function ()
{
$("#IdDatatble tbody tr:eq(0)").find('td').each(function () { });
}
});
}
catch(err)
{
alert(err.message);
}
});
}
答案 0 :(得分:1)
无法理解为什么你需要为同一件事调用ajax和getJson,试试这个:
$("#UploadButton").click(function(){
var UpdateURL="some url";
$("#idLoading").show();
loadGrid(UpdateURL);
});
function loadGrid(url){
$.getJSON(url,function (output)
{
try
{
var pdlJsonObj = output.aaData;
var tdata = $("#IdDatatble").dataTable({
"aaData": pdlJsonObj,
"bDestroy": true,
"sPaginationType": "full_numbers",
"aaSorting": [],
"fnCreatedRow": function (nRow, aData, iDisplayIndex, iDisplayIndexFull)
{
$(nRow).attr('id', iDisplayIndex);
},
"fnInitComplete": function ()
{
$("#IdDatatble tbody tr:eq(0)").find('td').each(function () { });
}
});
}
catch(err)
{
alert(err.message);
}
}).done(function( json ) {
$("#idLoading").hide();
})
.fail(function( jqxhr, textStatus, error ) {
$("#idLoading").show();
timeout_trigger();
});
}