ajax中回调的几个坑
在前端开发中,经常要用ajax去拿后台接口返回的数据,总结几个ajax的回调的常见问题,供大家参考爬坑。
- 未定义contentType,可能会造成的传入后台的数据乱码,可以加上如下代码在ajax请求中
contentType:'application/json;charset=UTF-8',
- 约定好传到后台以及后台返回的数据类型,一般定义json类型。
JSON.stringify():将一个JavaScript值(对象或者数组)转换为一个 JSON字符串 JSON.parse():将一个 JSON 字符串转换为对象
这两个是常用的json转换的api
- 在success或者error回调中,return 是拿不到值的,即使改变了async:false也拿不到,看下面的例子:
function checkUserTask(taskid){ $.ajax({ method:'get', url:URL.checkUserTask, async:false, data:{'id':taskid}, success:(response)=>{ console.dir(response) if(response.code==200 ){ return true; }else{ return false; } } }); }
这种写法即使是成功或者失败,在调用checkUserTask方法时都是返回的undefined,拿不到true或者false标识,所以一般写法修改如下:
function checkUserTask(taskid){ var flag = false; $.ajax({ method:'get', url:URL.checkUserTask, async:false, data:{'id':taskid}, success:(response)=>{ if(response.code==200 ){ flag = true; }else{ flag = false; } } }); return flag; }
在回调的后面return 就可以拿到返回值。
相关推荐
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