今天遇到一个关于ajax请求的问题,后端接口没问题,但是前端调用请求地址url啥也打印不出来
想了想就用log打印前后有没有代码执行
/**活动页面浏览量(PV)、浏览人数(UV)**/
function addpv(opttype) {
console.log(111)
finedo.action.ajax({
url: '${ctx}/finedo/hallgift/addServiceRecord',
data: {
"opttype": opttype,
"groupid":channelId
},
callback: function (data) {
}
});
console.log(222)
}
结果 只打印了 111 , 后面的222没有执行
很坑定的找后端说 你写的接口方法有报错问题,后端开发直接用postman给我来了一个打脸。回去接着找自己代码哪里出了问题
用alert() 在ajax请求前后执行一下
/**活动页面浏览量(PV)、浏览人数(UV)**/
function addpv(opttype) {
alert(111)
finedo.action.ajax({
url: '${ctx}/finedo/hallgift/addServiceRecord',
iswait: false,
async:false,
data: {
"opttype": opttype,
"groupid":channelId
},
callback: function (data) {
}
});
alert(222)
}
卧槽 用alert()前后竟然执行了 ajax请求也请求数据成功了 ,太神奇了, 把alert()注释后又不执行了,问题还是出在了ajax请求上,用的是自己公司封装的ajax ,百度了很多办法,最后用异步的async解决了
/**活动页面浏览量(PV)、浏览人数(UV)**/
function addpv(opttype) {
// alert(111)
finedo.action.ajax({
url: '${ctx}/finedo/hallgift/addServiceRecord',
iswait: false,
async:false, //默认开启true
data: {
"opttype": opttype,
"groupid":channelId
},
callback: function (data) {
}
});
// alert(222)
}
关闭异步请求,async属性把默认的true 改为 false ,就可以请求数据
本文记录了一位开发者在前端使用Ajax请求时遇到的问题,前端调用后端接口URL无法打印数据,仅输出了部分日志。通过在请求前后添加alert发现请求能够成功执行。最终发现是由于async属性设置导致的问题,将默认的异步请求改为同步(async:false)后,请求正常执行。这个问题突显了同步和异步在JavaScript中执行顺序的重要性。
5838

被折叠的 条评论
为什么被折叠?



