0

stumbleupon.com を実行しているとします。ユーザーは、サイトのデータベースに追加するサイトを送信できます。ユーザーが追加したサイトが実際の Web サイトであるかどうかを確認するプログラムを作成する方法はありますか? または、「まあ、それはバグだった」と言うことができる404になった場合、またはURLを送信するときにユーザーがエラーを起こした可能性がありますか? または、ユーザーが送信した Web サイトで 404 が表示されるかどうかを確認するために、給与計算に人を入れる必要がありますか?

4

2 に答える 2

4

リクエストからの応答コードは、サーバーからの良好な応答で得られる 200 成功メッセージではなく、404 not found です。チェックを簡単に自動化できます。

于 2012-04-16T14:43:57.780 に答える
1

私は Python についてよく知らないので、クライアント側のソリューションを提供します。

ユーザーがページを送信するとすぐに、URL が正当かどうかを確認できます。'verifying url' メッセージか何かを投げるかもしれません。

この方法を使用すると、クロスドメイン呼び出しを行って、そのサイトが実際に存在するかどうかを確認できます。次に、エラーを修正するか、URL の送信を許可するように求めるメッセージをポップアップ表示できます。このソリューションでは Yahoo をプロキシとして使用しますが、以下の非常に単純な関数からわかるように、これは機能します。

function doAjaxCheck(url){
// if the URL starts with http
if(url.match('^http')){

  //add a 'loading message here, or something'        

  // assemble the YQL call      
  $.getJSON("http://query.yahooapis.com/v1/public/yql?"+
            "q=select%20*%20from%20html%20where%20url%3D%22"+
            encodeURIComponent(url)+
            "%22&format=xml'&callback=?",
    function(data){
      if(data.results[0]){
        alert('it is OK');
      } else {
        alert('not OK');
      }
    }
  );
} else {
  $.ajax({
    url: url,
    timeout:5000,
    success: function(data){
      alert('it is OK');
    },
    error: function(req,error){          
      if(error === 'error'){error = req.statusText;}
        alert('not OK : ' + error );
    }
  });
}
}

ただし、これがすべて言われているので、信頼性のためにサーバー側のチェックを行います。

于 2012-04-17T16:15:08.567 に答える