是否可以将XHR响应用作返回值?

时间:2019-07-10 02:22:53

标签: javascript ajax xmlhttprequest

我想使用return语句将XMLHttpRequest响应分配给变量,但是得到的结果不确定。我猜想分配正在尝试在响应准备好之前执行。

var x = req('param=val&param2=val2'); // x results in 'undefined'
function req(request) {
  var xhr=new XMLHttpRequest();
  xhr.open("post","parser.php");
  xhr.responseType="text";
  xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
  xhr.send(request);
  xhr.onreadystatechange=function(){
    if(this.readyState==4&&this.status==200) return this.response;};
}

我以前在每次作业中都使用setInterval(),但是它比我想要的更为冗长:

req('param=val&param2=val2');
var wait=setInterval(function(){if(php!=null){
   x = php;
   clearInterval(wait);}
},10);
function req(request) {
  var xhr=new XMLHttpRequest();
  xhr.open("post","parser.php");
  xhr.responseType="text";
  xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
  xhr.send(request);
  xhr.onreadystatechange=function(){
    if(this.readyState==4&&this.status==200) php = this.response;};
}

0 个答案:

没有答案