2016-11-11 53 views
-3

我使用Ajax在我的网站中运行PHP脚本。我想为来自PHP脚本的响应设置一个JS变量。JavaScript responseText没有被保存为可变?

这个脚本应该使变量 “STOPAT” 设置为42

这是我的错误: Error

这里是我的代码:

  function reqListener() { 
      console.log(this.responseText); 
      } 

      var oReq = new XMLHttpRequest(); //New request object 
      oReq.onload = function() { 
       var stopAt = (this.responseText) 
      }; 
      oReq.open("get", "gennum.php", true);        
      oReq.send(); 
      theWheel.animation.stopAngle = stopAt; 

这里是gennum.php:

<?php 
echo json_encode(42); 
?> 

谢谢!希望你们能解决我的问题! :)

回答

0

stopAt是一个局部变量。它只在函数内部定义。您需要将使用它的语句移到该函数中。

oReq.onload = function() { 
    var stopAt = (this.responseText); 
    theWheel.animation.stopAngle = stopAt; 
}; 
+0

有没有什么办法可以通过使用全局变量来做到这一点...或什么? – Jake

+0

您仍然需要在函数内设置“stopAngle”。 ['XMLHttpRequest.send'](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send)是异步的,所以它会尽快返回而不用等待请求完成,并且该变量仍然不会在'send()'调用下定义。 –

+0

@jake .......... –