在前端开辟中,常常要用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 就能够拿到返回值。