我如何在全局javascript变量中获取ajax内容

时间:2011-02-11 17:46:16

标签: ajax

我想把内容放在javascript globaly定义的变量中,我使用ajax调用获得的内容。

http://pastebin.com/TqiJx3PA

感谢任何建议

1 个答案:

答案 0 :(得分:2)

pastebin代码已经这样做了。我猜你实际面临的问题是因为你的ajax调用是异步,这意味着你正在进行ajax请求(异步),并立即尝试访问该值全局变量 - 但尚未确定。

解决方法是在onReadyStateChange回调中执行ajax后代码。

function handleResponse(result_cont) {
    // your result_cont processing code here
}

ajax(handleResponse);

function ajax(callback) {
    var xmlHttp;
    try { // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            if (xmlHttp.responseText != "") {
                result_cont = xmlHttp.responseText
                alert(result_cont);

                // ############# here's the important change #############
                // execute the provided callback
                callback(result_cont);
            }
        }
    }
    xmlHttp.open("GET", "contentdetails.php?cid=1", true);
    xmlHttp.send(null);
}