2012-08-06 94 views
1

這裏是Ajax代碼之前:檢查URL包含有效的tumblr域名進行Ajax調用

jQuery.ajax({url: "http://api.tumblr.com/v2/blog/" + nonTumblrURL + "/info?api_key=WIHfFzkpSXJ4FOfzt3qBAhlleM09iSAtc2AFNAdViAeRPzAsMq&jsonp=getUserName", dataType: "jsonp"}); 

這裏的功能:

function getUserName(data){ 
    console.log(data.response.blog.name); 
    var username = data.response.blog.name; 

if (username === "api"){ 
    //alert("You didn't enter anything."); 
    $('input.nonTumblrURL').val("You need to enter something here."); 
    return;} 
$('#convertedURL').html("<em>Use </em><b> " + username + "</b> <em> for that Tumblr</em>"); 
} 

這裏的目的是要檢索的tumblr的用戶名時,自定義域比如使用「customdomain.com」而不是標準的「someone.tumblr.com」。所以,我使用Tumblr API來獲取用戶名。

當在Ajax調用中發送一個空值時,它會返回「api」,所以我將其捕獲到函數中,並將結果消息放入#convertedURL並且正常工作。

我需要的是能夠捕捉Tumblr API中無法解析的非空白值的東西。例如,「theagenda.nytimes.com」正確地解析爲「nyt-agenda」。

但是,我需要陷入像「junkkkkk」(以及其他不是有效的Tumblr域名或其他)的東西,並用「這不是正在使用的自定義域名」這樣的消息替換#convertedURL中的HTML。

在此先感謝您的幫助!

回答

1
function isValidDomain(url){ 
    return /((http|https):\/\/(\w+:{0,1}\w*@)?(\S+)|)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(url); 
} 

公然從here複製。另見this

二,知道它是否解析成有效的url。 (這裏不說tumblr的具體內容)

你可以簡單地做ajax調用,看它是成功還是失敗。

$.ajax({url : url, 
    success : function() {...}, 
    error : function() {...} 
}); 
+0

謝謝。你會在哪裏放置該代碼? – user1452893 2012-08-06 21:21:07

+0

成功和錯誤返回相同的結果:「不」,即使它成功: '$ .ajax({url:「http://api.tumblr.com/v2/blog/」+ nonTumblrURL +「/ info?api_key = WIHfFzkpSXJ4FOfzt3qBAhlleM09iSAtc2AFNAdViAeRPzAsMq&JSONP = getUserName」,數據類型: 「JSONP」, 成功:函數(){的console.log( 「耶」)}, 錯誤:函數(){的console.log( 「否」)} });' – user1452893 2012-08-06 23:11:13