ajax异步请求使用问题
今天使用ajax进行异步请求时,遇到一个傻傻的问题。因为想简化页面代码,使用自定义函数,函数内部使用ajax请求,在页面中获取函数返回值。
我是在ajax请求的回调函数中直接返回
var result = queryWithPost(url,{username:username,password:password})
请求函数
function queryWithPost(urlStr,Params) {
$.ajax({
url:"http://localhost:8080"+urlStr,
type:"post",
dataType:"json",
data:Params,
success:function (result) {
return result;
},
error(msg){
return msg;
}
})
发现外面获取的值为undifined。
由于ajax是异步请求,在其回调函数中返回的值外部是无法直接获取的。所以我改用了以下写法:
function queryWithPost(urlStr,Params) {
var s = "";
$.ajax({
url:"http://localhost:8080"+urlStr,
type:"post",
dataType:"json",
data:Params,
success:function (result) {
s = result;
},
error(msg){
s = msg;
}
})
return s;
}
问题解决。