2012-04-16 55 views
0

假设我正在运行stumbleupon.com,用户可以提交要添加到网站数据库的网站。有没有一种方法可以编写程序来查看用户添加的网站是否真的是真实的网站?或者,如果它带我到404,我可以说“welp,那是一些bug”或者也许用户在提交url时发生错误?或者,我是否需要将人员放在我的工资单上,以查看用户提交的网站是否会将我带到404?所有的404页面都有共同之处吗?/ 404页面是否可以与常规页面区分?

回答

4

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

+1

请注意,在极少数情况下,无知的Web管理员已知将其Web服务器配置为返回具有200状态码的“未找到”页面。 – Spacedman 2012-04-16 15:48:42

1

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

您可以在用户提交页面后立即检查URL是否合法。也许抛出一个'验证网址'的消息或东西。

使用this method您可以进行跨域调用以查看该网站是否真的存在。然后您可以弹出一条消息,要求他们修正错误或允许提交网址。这个解决方案使用雅虎作为代理,但正如你可以通过我的超级简单功能看到它的工作。

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

但是,所有这一切都说了,我会去服务器端检查可靠性。