2012-04-16 77 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); 
    } 
    }); 
} 
} 

但是,所有這一切都說了,我會去服務器端檢查可靠性。