在我的JS中,我正在向bit.ly api发送一个get请求,以缩短URL。问题是我需要返回代码中使用的URL。

为此最好使用同步请求吗?就目前情况而言,使用bit.ly的XHR请求之后的任何代码都将失败,因为响应尚未返回短URL。

bitlyXHR.onreadystatechange = function() {
    if (bitlyXHR.readyState == 4) {
        if (bitlyXHR.status == 200) {
            var obj = JSON.parse(bitlyXHR.responseText);
            // Do something
        }
    }
};

bitlyXHR.open("GET", "http://api.bitly.com/v3/shorten?login=&apiKey=&longUrl=" + longURL + "&format=json");
bitlyXHR.send();

// Some code here that uses the short URL

最佳答案

您可以执行以下操作:

function doSomething(obj) {
    // this does something with the result.
}

bitlyXHR.onreadystatechange = function() {
    if (bitlyXHR.readyState == 4) {
        if (bitlyXHR.status == 200) {
           var obj = JSON.parse(bitlyXHR.responseText);
           doSomething(obj);
        }
    }
};

bitlyXHR.open("GET", "http://api.bitly.com/v3/shorten?login=&apiKey=&longUrl=" + longURL + "&format=json");
bitlyXHR.send();

07-27 13:37