0

假设我正在运行 stumbleupon.com,用户可以提交要添加到站点数据库中的站点。有没有办法可以编写一个程序来查看用户添加的网站是否实际上是一个真实的网站?或者如果它把我带到一个 404,我可以说“welp,那是一些错误”,或者用户在提交 url 时出错了?或者我是否需要将人员列入我的工资单以查看用户提交的网站是否将我带到 404?

4

2 回答 2

4

请求的响应代码是 404 未找到,而不是您从服务器获得良好响应的 200 成功消息。您可以轻松地自动执行检查。

于 2012-04-16T14:43:57.780 回答
1

由于我对python不太了解,所以我提供了一个客户端解决方案。

您可以在用户提交页面后立即检查 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 回答