Jquery的ajax始终进不了任何回调方法--原因发现
场景:
使用某个日历控件的dialog(弹出框)来修改信息,点击确认后用jquery的ajax方法调用后台修改,在success方法用返回回来的状态码判断是否修改成功。
代码:
function update(id){ ..... updateCalendar(params); $(this).dialog('close'); location.reload(); } function updateCalendar(params){ $.ajax({ type: 'POST', url: '${ctx}/calendar/calendarManageUpdate.action', data:'id='+params.id, dataType: 'json', success: function(data){ if(data.content != "success"){ alert("您已经有了此日程!"); return; }else{ alert("修改成功"); } } }); }
结果:始终进不了success方法,我试过添加complete方法,也没有进去。搜索过类似问题,有说返回的数据必须是json格式字符串(如果指定了数据格式dataType: 'json'),未果。
解决:ajax方法是在弹出框中定义的,但是ajax方法后调用了弹出框的关闭方法,使处理完后找不到dialog中的success方法,故将dialog的的关闭方法在success中调用:
function update(id){ ..... updateCalendar(params); } function updateCalendar(params){ $.ajax({ type: 'POST', url: '${ctx}/calendar/calendarManageUpdate.action', data:'id='+params.id, dataType: 'json', success: function(data){ if(data.content != "success"){ alert("您已经有了此日程!"); return; }else{ alert("修改成功"); $(this).dialog('close'); location.reload(); } } }); }
总结:ajax的回调方法需要在父类页面存在的情况下才能够调用, 虽然我对ajax添加了同步执行(async=true)参数,也未阻止窗口的关闭。
相关推荐
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
时光如瑾雨微凉 2020-07-19
83510998 2020-07-18
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05
坚持着执着 2020-07-05