1

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

ここでの目的は、標準の「someone.tumblr.com」の代わりに「customdomain.com」のようなカスタム ドメインが使用されている場合に、Tumblr のユーザー名を取得することです。そこで、Tumblr API を使用してユーザー名を取得します。

Ajax呼び出しで空白の値が送信されると、「api」が返されるため、それを関数にトラップし、結果メッセージを配置して正常に#convertedURL動作します。

私が必要としているのは、Tumblr API で解決されない空白以外の値をトラップするものです。たとえば、「theagenda.nytimes.com」は「nyt-agenda」に正しく解決されます。

しかし、「junkkkkk」のようなもの (および Tumblr などの有効なドメインではないその他のもの) をトラップし、HTML を#convertedURL「使用中のカスタム ドメインではありません」などのメッセージに置き換える必要があります。

よろしくお願いします。

4

1 に答える 1

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

ここから露骨にコピペ。これも参照してください。

次に、有効な URL に解決されたかどうかを確認します。(ここではtumblr固有の話ではありません)

単純に ajax 呼び出しを行い、それが成功したか失敗したかを確認できます。

$.ajax({url : url,
   success : function() {...},
   error : function() {...}
});
于 2012-08-06T21:15:19.973 に答える