2012-07-23 16 views
0

如何檢查是否一個頁面存在,而不在嘗試捕捉檢查是否存在一個頁面,而無需使用嘗試捕捉

Dim myWebResponse As HttpWebResponse = CType(myWebRequest.GetResponse(), HttpWebResponse) 

包裹它如果頁面不存在,我得到一個404 exeption時myWebRequest.GetResponse()火災。

是不是有一些像myWebRequest.DoesPageExist()返回true或false狀態?

+1

你可以用Ajax嘗試呼... http://stackoverflow.com/questions/3646914/how-do-i-check- if-file-exists-in-jquery-or-javascript – WraithNath 2012-07-23 10:35:40

+0

我可以問你想達到什麼嗎?我的意思是,你爲什麼要調用一個可能不存在的URL?正如我所看到的,如果你打電話給這個網址,你應該期待它存在,所以如果它不存在的話它確實是一個特殊事件。將此表示爲例外是有道理的,不是嗎? – Mithon 2012-07-23 10:35:39

回答

3

這是不可能的。

要檢查頁面是否存在,您必須執行Web請求,並且如果頁面不存在,服務器將返回錯誤代碼。如果該頁面存在,則服務器返回頁面內容。所有這些都在一個服務器請求中,如果您首先檢查,則需要兩個服務器請求,這是不夠高效的。

當你執行一個web請求時,你應該總是捕捉異常,因爲可能會發生許多意想不到的事情。不僅該頁面不存在,連接可能會超時或中斷,服務器本身已關閉....並且您應該捕獲所有這些異常。

1

你試過用ajax做過嗎? (本例使用jQuery的)

$.ajax({ 
    url:'http://www.example.com/somefile.ext', 
    type:'HEAD', 
    error: function() 
    { 
     //file not exists 
    }, 
    success: function() 
    { 
     //file exists 
    } 
}); 

下面是用於檢查404個狀態碼,whitout使用jQuery

function UrlExists(url) 
{ 
    var http = new XMLHttpRequest(); 
    http.open('HEAD', url, false); 
    http.send(); 
    return http.status!=404; 
} 

摘自:

How do I check if file exists in jQuery or JavaScript?