2013-08-25 60 views
1

我試圖用計算器用戶duotrigesimal批量URL擴大,這是粘貼下面批量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>'); 
    } 

}); 
} 

在這種情況下使用上的jsfiddle創建的代碼,它需要這四個網址,並給出瞭如輸出他們的擴展版本。但是,只有在成功時纔會這樣做。在上述4個URL中,第1,第2和第4個解析爲正確的URL並顯示在輸出中,但第3個,這是錯誤,完全被代碼忽略。遇到錯誤時,我希望代碼顯示錯誤消息,或者至少只是通過生成換行符並繼續前進來跳過。否則,我會輸入4個縮短的URL,並將其作爲輸出3,我不知道哪個是錯誤。有人可以幫忙嗎?

+0

這是OP是指崗位:http://stackoverflow.com/questions/14759874/how-to-un-shorten-t-co-links-with-jquery/14760710#14760710 –

+0

如果它對你有幫助,不要忘記接受答案。 –

回答

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>'); 
     }  


    }, 

}); 
}