1

我正在尝试使用stackoverflow用户duotrigesimal在JSFiddle上创建的代码进行批量URL扩展,粘贴在下面

var tests = [
'http://t.co/NJwI2ugt',
'http://www.google.com',
'http://www.goo.com',
'http://www.goog.com'
 ];

for (i in tests) {

var data = {
    url: tests[i],
    format: 'json'
};

$.ajax({
    dataType: 'jsonp',
    url: 'http://api.longurl.org/v2/expand',
    data: data,
    success: function (response) {
       $('#output').append(response['long-url']+ '<br>');
    }

});
}

在这种情况下,它采用这四个 URL 并将其扩展版本作为输出。但是,只有在成功时才会这样做。在上述 4 个 URL 中,第 1 个、第 2 个和第 4 个解析为正确的 URL 并显示在输出中,但第 3 个是错误的,完全被代码跳过。遇到错误时,我希望代码显示错误消息,或者至少只是通过生成换行符来跳过并继续前进。否则,我给出 4 个缩短的 URL,我得到输出 3,但我不知道哪一个是错误的。有人可以帮忙吗?

4

1 回答 1

0

看起来 longurl api 的超时时间很长,所以我们必须自己设置一个更合理的。此示例将其设置为 3 秒,但您可以根据需要进行调整。

然后,我们只需检查响应是否超时并采取相应措施。

这是一个jsFiddle

var tests = [
'http://t.co/NJwI2ugt',
'http://www.google.com',
'http://www.asdkofhakisgjhasfjhbvasfdv.com',
'http://www.goog.com'
 ];

for (i in tests) {

var data = {
    url: tests[i],
    format: 'json'
};

$.ajax({
    dataType: 'jsonp',
    url: 'http://api.longurl.org/v2/expand',
    data: data,
    timeout: 3000,
    complete: function (response) {

        if( response.statusText == 'success' ) {
            $('#output').append('success: '+response.responseJSON['long-url']+'<br>');
        } else {
            $('#output').append('error: error message here <br>');
        }    


    }, 

});
}
于 2013-08-27T17:08:30.217 回答