首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnReadyStateChange作用域问题

OnReadyStateChange作用域问题
EN

Stack Overflow用户
提问于 2016-04-14 01:22:30
回答 1查看 112关注 0票数 0

我正在尝试将New_Token函数中GetURL的值从函数中取回,以便我可以使用它。我想我的问题是request.onreadystatechange线路(尽管我不能确定)。GetURL在函数外部未定义。

代码语言:javascript
复制
var GetURL;
var request = new XMLHttpRequest();
var path="https://ops.epo.org/3.1/auth/accesstoken";

request.onreadystatechange= function() {New_Token(GetURL);};

var encodedData = window.btoa("key:secret"); //encode consumer key and secret key
request.open("POST", path, true);
request.setRequestHeader("Authorization", encodedData);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send('grant_type=client_credentials'); //send request to server, must include grant_type in payload or it won't work
alert(GetURL);

function New_Token(GetURL) {
    if (request.readyState == "4") //Request finished and response is ready
    {
        if (request.status == "200") {
            console.log(request.responseText);
            var TheResponse = JSON.parse(request.responseText);
            console.log(TheResponse);
            var TokenValue = TheResponse.access_token;
            console.log(TokenValue);
            GetURL = ("?access_token=" + TokenValue);
            console.log(GetURL); //this is the added string that needs to be concact. on to ALL OPS calls

            return(GetURL);
        }
        else {
             alert("Problem retrieving data");
            console.log(request.responseText);
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-04-14 01:26:40

尝尝这个

代码语言:javascript
复制
function New_Token(GetURL) {
    if (request.readyState == 4 || request.readyState == "complete") 
    {
        if (request.status == 200||request.status == 0) {
            console.log(request.responseText);
            var TheResponse = JSON.parse(request.responseText);
            console.log(TheResponse);
            var TokenValue = TheResponse.access_token;
            console.log(TokenValue);
            GetURL = ("?access_token=" + TokenValue);
            console.log(GetURL); //this is the added string that needs to be concact. on to ALL OPS calls
            return(GetURL);
        }
        else {
             alert("Problem retrieving data");
            console.log(request.responseText);
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36605408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档