JavaScript/AJAX-在onreadystatechange中返回对象(未定义错误)
我试图在发出AJAX请求时在onreadtstatechange函数中返回一个对象。我将返回的对象分配给一个变量,但当我尝试访问该变量时,会出现以下错误(在尝试使用对象的description属性后): 未捕获的TypeError:无法读取未定义的属性“说明” 以下是我正在做的:JavaScript/AJAX-在onreadystatechange中返回对象(未定义错误),javascript,ajax,Javascript,Ajax,我试图在发出AJAX请求时在onreadtstatechange函数中返回一个对象。我将返回的对象分配给一个变量,但当我尝试访问该变量时,会出现以下错误(在尝试使用对象的description属性后): 未捕获的TypeError:无法读取未定义的属性“说明” 以下是我正在做的: var myApp = function() { var obj1 = function() { return { something:function() { v
var myApp = function() {
var obj1 = function() {
return {
something:function() {
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
return {
status:xmlhttp.status,
description:xmlhttp.responseText
}
}
}
xmlhttp.open("GET","http://something",true);
xmlhttp.send();
}
}
}();
var obj2 = function() {
return {
something2:function() {
var something = obj1.something();
console.log("Description: "+something.description + ", Status: "+something.status);
}
}
}();
}();
有什么建议吗?(第二个答案是为无库Ajax编辑的)jonathan发布的链接确实将它总结为一个变量
var data=xmlhttp.responseText
,然后解析它JSON.parse(data)
谢谢jonathan,我将尝试按照答案的说明将回调传递给函数。唯一的问题是我的函数有6种不同的状态,所以我必须通过这6种函数,我有一个问题。在我发布的示例中,如何从函数something2引用xmlhttp?我想在something2中构建函数,并将其传递给某个对象,但我不确定如何从something2引用xmlhttp.status