说我正在运行stumbleupon.com,用户可以提交要添加到网站数据库中的网站。有没有办法可以编写一个程序来查看用户添加的网站是否真的是一个真实的网站?或者,如果它带我到404,我可以说“welp,这是一些bug”或者可能是用户在提交网址时出错了?或者我是否需要将人员放在我的工资单上以查看用户提交的网站是否将我带到404?
答案 0 :(得分:4)
来自请求的响应代码是404未找到,而不是来自服务器的良好响应的200成功消息。您可以轻松自动化检查。
答案 1 :(得分:1)
由于我对python知之甚少,我提供了一个客户端解决方案。
用户提交页面后,您可以检查URL是否合法。也许抛出'验证网址'的消息或其他东西。
使用this method您可以进行跨域调用,以查看该网站是否确实存在。然后,您可以弹出一条消息,要求他们修复错误或允许提交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 );
}
});
}
}
然而,所有这些都说,我会为了可靠性而进行服务器端检查。