AJAX响应问题

时间:2011-07-07 15:11:30

标签: javascript ajax

我有这个功能:

function Ajax() {
    var xmlhttp, onready, open, response;

    if(window.XMLHttpRequest) {
        this.xmlhttp = new XMLHttpRequest();
    } else {
        this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    this.onready = function(onready) {
        this.xmlhttp.onreadystatechange = function() {
            if ( this.xmlhttp.readyState == 4 && this.xmlhttp.status == 200) {
                onready.call();
            }
        }
    };

    this.open = function(_filename, _method) {
        this.xmlhttp.open(_method, _filename, true);
        this.xmlhttp.send(null);
    };

    this.response = function() {
        return this.xmlhttp.responseText;
    };
}


function rc() {
    var ajax = new Ajax();

    ajax.onready(function() {
        document.getElementById("comments").innerHTML = ajax.response();
    });

    ajax.open("ab.php","GET");
}

rc();

请求发送正常,但我无法提取响应。

  • 它表明在xmlhttp对象中不存在readyState。

2 个答案:

答案 0 :(得分:0)

根据this discussion,这可能是Firebug中的一个错误。

你使用的是什么版本的萤火虫?

你能试试吗

  • 更新Firebug
  • 与其他浏览器一样尝试?目前,几乎所有浏览器都有开发者控制台。

答案 1 :(得分:0)

当我运行你的代码时,我得到了“this.xmlhttp未定义”的行:

if ( this.xmlhttp.readyState == 4 && this.xmlhttp.status == 200) 

您已经在xmlhttp对象中。该行应该是:

if ( this.readyState == 4 && this.status == 200) 

这应该可以解决错误。