如何将onreadystatechange设置的变量返回给对象的属性?

时间:2016-03-28 12:54:03

标签: javascript ajax oop

我试图在 javascript 中编写一个 AJAX 类主要用于学习目的,我遇到了这个问题#39; t能够解决。

我想将onreadystatechange触发的任何AJAX响应传递给类属性以供进一步使用,但该属性以我尝试格式化代码的每种不同方式返回null

我认为这与范围和/或执行顺序有关,但我无法弄清楚。

示例:

function Ajax() {
    var self = this;
    this.response = null; //the property in question
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            self.response = xmlhttp.responseText; //responseText is set; it works only here
        }
    };
    xmlhttp.open("POST", "foo.php", true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("foo=bar");
}
var ajax = new Ajax();
alert(ajax.response); //returns the default value

php文件只包含一个打印,因为这是一个例子:

<?php
    print_r($_POST);

我尝试将xmlhttp对象传递给单独的方法,但这也没有用。

xmlhttp对象存储为类的属性也不起作用,它不会设置属性,因为它甚至不会因某种原因超过状态0。

如果有人在这里解释我遗失或误解的话,我会感激不尽。谢谢你的时间。

0 个答案:

没有答案