[英]Storing XHR request into javascript variable
到目前为止,这是 javascript:
var req = new XMLHttpRequest;
req.open('get', 'https://jsonplaceholder.typicode.com/todos', true);
req.responseType = 'json';
req.send();
在 chrome 开发工具上,我可以看到响应是我想要的项目,所以请求应该没问题。 它是 200 和 state 4 的状态。
当我尝试写作时,问题就出现了
var myJSON = req.response;
当我将此记录到控制台时,它会以“null”响应。 但是,如果我通过开发工具将值重新分配到完全相同的值,我会得到我的 JSON object .. 有人可以向我解释为什么以及如何解决这个问题吗?
XMLHttpRequest异步执行,这意味着您可以在从服务器获取数据后执行的回调中读取变量:
req.onreadystatechange = function () {
if(req.readyState === 4 && req.status === 200) {
var myJSON = req.response;
}
};
您在开发工具中看到数据的原因是在您执行代码之后以及在开发工具中读取该变量之前会返回响应。
尝试准备好 state
var req = new XMLHttpRequest;
req.open('get', 'https://jsonplaceholder.typicode.com/todos', true);
req.responseType = 'json';
req.send();
req.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.response);
var myJSON = this.response;
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.