xmlhttprequest的responseText未设置为javascript变量的值

时间:2015-06-10 18:26:36

标签: javascript ajax

我正在尝试获取sharepoint中页面的标题,以获取我需要发出ajax请求的父网站的标题

 function getPageTitle(variation,option){
    var xmlhttp,rootSiteTitle,url;

        url=_spPageContextInfo.siteAbsoluteUrl + "/" + variation + "/_api/web?$select=Title";


    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
           if(xmlhttp.status == 200){
rootSiteTitle=xmlhttp.responseXML.getElementsByTagName("Title")[0].childNodes[0].nodeValue;
           }
           else if(xmlhttp.status == 400) {
              alert('There was an error 400')
           }
           else {
               alert('something else other than 200 was returned')
           }
        }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
    return rootSiteTitle;
}

这里当我在控制台中运行此请求时,它正在设置变量的值,但是当我在代码中使用它并调用函数时,函数返回undefined

是否因为在请求完成之前执行了return语句?如何确保仅在设置值后,函数返回值?

0 个答案:

没有答案