在我的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
答案 0 :(得分:2)
您可以这样做:
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();
答案 1 :(得分:0)
将使用短URL的代码移动到具有执行某些操作注释的代码部分,或者更好的是,从那里调用包含该代码的函数。
这样做是使用回调称为。您提供了一个函数,以便在请求返回时执行。这是处理AJAX的最佳方式(A代表异步,毕竟)请求,因为它不会在等待调用完成时锁定浏览器。