在进行ajax调用之前,check url包含有效的tumblr域名

时间:2012-08-06 21:10:59

标签: jquery ajax 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>");
}

此处的目的是在使用“customdomain.com”等自定义域而不是标准“someone.tumblr.com”时检索Tumblr的用户名。所以,我使用Tumblr API来获取用户名。

当在Ajax调用中发送空值时,它返回“api”,因此我将其捕获到函数中并在#convertedURL中放置了结果消息并且工作正常。

我需要的东西是捕获一个无法在Tumblr API中解析的非空值。例如,“theagenda.nytimes.com”正确地解析为“nyt-agenda”。

但是,我需要捕获诸如“junkkkkk”之类的内容(以及其他不是Tumblr或其他有效域的内容)并将#convertedURL中的HTML替换为“这不是正在使用的自定义域”之类的消息”

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

明确地从here复制。另请参阅this

其次,要知道它是否已解析为有效网址。 (这里没有说tumblr特定的)

您可以简单地进行ajax调用,看看它是成功还是失败。

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