我还在读js的基础书籍,所以对一些js原理了解不是全面,所以问题如有愚昧,还请见谅。
function asynSubmit(sData,action,method="POST"){
var httpRequest = new XMLHttpRequest();
var rMessage="请求未发送";
httpRequest.open(method,action);
httpRequest.setRequestHeader("content-type","application/x-www-form-urlencoded");
httpRequest.send(sData);
httpRequest.onreadystatechange=function(){
if(httpRequest.readyState===4){
console.log("4");
if(httpRequest.status===200){
console.log("200");
var rData=httpRequest.responseText;
//JSON.parse(httpRequest.responseText);
return rData;
}else{
return "服务器异常";
}
}else{
return "服务器未响应";
}
}
}
如上述代码,我想封装一个ajax的函数。想让函数返回responseText的值,因为onredeaychang调用了匿名函数,在匿名函数里返回的值我要怎么在外层函数获取?或者有其他什么方法能达到我的目的?我也试过在外层函数定义变量,在匿名函数里为变量赋值,但由于匿名函数绑定了事件,所以这样做直接返回空值。
自己想了很久,也百度过了,实在想不出解决办法,还请各位不吝赐教。