function Cnx() {
var url = 'http://192.168.0.13/activity?name=flower';
var solicitud = new XMLHttpRequest();
this.res;
solicitud.addEventListener('load', cargar, false);
solicitud.open("GET", url, true);
solicitud.send(null);
function cargar(e) {
this.setRes(e.target.responseText);
}
this.setRes = function(valor) {
this.res = valor;
}
this.getRes = function() {
alert(this.res);
}
}
然后,我打电话给:
var cnx= New Cnx();
alert(cnx.getRes());
但是,这会返回undefined。如果我从一个按钮调用例如cnx.getRes(),它将返回正确的值。
注意:ajax调用正常。
为什么会这样?
非常感谢你。对不起,我的英语不好......
答案 0 :(得分:1)
除了Ed的观察之外还有另一个问题:
在调用New Cnx();
后,控制流不会等待XMLHttpRequest完成。因此,如果您在调用cnx.getRes()
之前没有等待请求完成,则响应将永远不可用。
您可以做的最好的事情就是将其余的代码放在cargar
函数中,只要加载了响应,就会自动调用它。
答案 1 :(得分:0)
getRes()
没有返回值,因此返回值未定义。