我正在使用下面的代码来捕获响应,但无法获取,请让我知道我在这里缺少什么。
function testcall() {
var request = new XMLHttpRequest();
request.open('GET', 'http://demo8951713.mockable.io/fusionchart', true);
request.send();
var response = this.responseText;
alert(response);
}
testcall()
答案 0 :(得分:4)
您有两个问题。
首先,this
(在您使用的上下文中)没有引用您的XHR对象。
第二,您尝试在发送请求后立即读取响应。您必须等待浏览器收到响应!
request.addEventListener("load", function () {
var response = this.responseText;
alert(response);
});
所做的更改(将代码移动到事件处理程序中)还将this
置于引用正确对象的上下文中。
修复此问题后,您可能想尝试返回该值。在您这样做之前,请read this question。
答案 1 :(得分:0)
您缺少回调函数
request.onreadystatechange = function() {
if (xhr.readyState === 4) {
callback(xhr.response);
}
}
有关更多详细信息,请参见https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response#Example