我正在使用按钮触发AJAX调用以从SQL数据库中检索数据。我遇到的问题是当按钮单击也触发对服务器的调用时,AJAX调用失败。
代码:
$('.ptimage').click(function () {
document.getElementById('loading').style.display = "block";
if (dataStore.getItem('mlist') == null || dataStore.getItem('flist') == null) {
alert('isnull');
var nulldata = {};
nulldata.nullvar = "thing";
var jsonData = JSON.stringify({
nulldata: nulldata
});
$.ajax({
type: "POST",
url: "WebService.asmx/Getmf",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnErrorCall
});
function OnSuccess(response) {
var arraystring = response.d;
alert(arraystring);
mlist = arraystring.split(',');
mlist.splice(0, 1);
mlist.splice(-1, 1);
dataStore.setItem('mlist', JSON.stringify(mlist));
flist = arraystring.split(';');
flist.splice(0, 1);
flist.splice(-1, 1);
dataStore.setItem('flist', JSON.stringify(flist));
}
function OnErrorCall(response) {
alert("fail");
}
}
ptsession = dataStore.getItem('ptsessionval');
if (ptsession !== focusedcell) {
btn57.click();
}
})
因此,如果ptsession!= focusedcell,基本上如果点击的记录与当前记录不同,它将触发服务器调用c#codebehind以获取新记录。
如果记录不同,则AJAX调用失败,并且从button57(回发)对服务器的调用成功。如果记录相同(因此没有从button57调用服务器),则AJAX调用成功。我无法弄清楚为什么会这样。