我試圖打開一個文件window.open()
會拋出顯示警報如何在HTTP錯誤的情況下404.3
HTTP錯誤404.3
現在我知道有IIS Settings
或設置staticContent
解決方案在web.config中。但我只想在404.3錯誤的情況下顯示警報。
我試圖打開一個文件window.open()
會拋出顯示警報如何在HTTP錯誤的情況下404.3
HTTP錯誤404.3
現在我知道有IIS Settings
或設置staticContent
解決方案在web.config中。但我只想在404.3錯誤的情況下顯示警報。
我發現了另一個解決方案爲我工作。
var XMLHttp = new XMLHttpRequest();
XMLHttp.open("GET", "" + url + "");
XMLHttp.onreadystatechange = handlerFunction;
XMLHttp.send(null);
function handlerFunction() {
if (XMLHttp.readyState == 4 && XMLHttp.status == 404) {
alert("File not reachable");
}
else if (XMLHttp.readyState == 4 && XMLHttp.status !== 404) {
window.open(url, '_blank');
}
}
如果您只想檢查頁面是否存在,則應該使用「HEAD」請求而不是「GET」請求。 – david25272
它取決於你的情況要如何解釋錯誤頁面錯誤類型。
正如你所知錯誤404.3發生在服務器端(IIS),而不是在客戶端,所以它必須在IIS web.config或後端的東西控制,但可以輕鬆地將用戶重定向到具有特定查詢字符串到錯誤頁面和錯誤頁面控制查詢字符串!
例如看看這個:
在Oops.html
讀
<customErrors mode="On" defaultRedirect="LogIn.aspx" redirectMode="ResponseRewrite">
<error statusCode="403" redirect="ErrorPages/Oops.html?Error=NoAccess"/>
<error statusCode="404" redirect="ErrorPages/Oops.html?Error=FileNotFound"/>
<error statusCode="500" redirect="ErrorPages/Oops.html?Error=ServerError"/>
</customErrors>
查詢字符串,並顯示您的警告:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
,並在負荷:
switch (getParameterByName("Error")) {
case 'NoAccess':
alert('The page you are looking for is not exist in the system.');
break;
case "FileNotFound":
alert('File not found.');
break;
case "ServerError":
alert('Error in server.');
break;
default:
break
}
你可以圍繞'windows.open()'和'嘗試{windows.open()}趕上(){...}' – Weedoze
我試圖用'try'和'catch'但它仍然會打開'url'然後拋出錯誤。我想要做的是不打開'url'。 – Niklaus