在JavaScript中检测404

时间:2010-12-23 19:42:05

标签: javascript asp.net http-status-code-404

在我的JavaScript中,我正在尝试重定向到第三方网页。它可以在新窗口中打开页面,也可以在框架内打开页面,具体取决于用户设置。像这样:

if (newWindow)
{
   window.open(url, targer);
}
else
{
   theFrame = url;
}

我想要做的是显示我的自定义页面,以防第三方网站关闭或页面不可用。基本上是在404错误的情况下。

解决这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:6)

由于same origin policy,您无法检测到其他窗口或框架内容的任何内容 - 包括它是否实际上甚至已加载 - 如果它位于不同的域名上。

答案 1 :(得分:2)

另类想法...... 您可以使用服务器端语言检查目标URL。

对于PHP:使用Curl,您可以获得url的http状态。

http_code就是你要找的curl_getinfo($ ch [,int $ opt = 0])

http://www.php.net/manual/en/function.curl-getinfo.php

答案 2 :(得分:1)

关注@risyasin建议我使用ASP.NET在服务器端解决了我的问题。

protected void Page_Load(object sender, EventArgs e) {
    HttpWebResponse response;
    try
    {
        var request =
            (HttpWebRequest)WebRequest.Create("http://www.someSite.com/camdsa");
        response = request.GetResponse() as HttpWebResponse;
    }
    catch (WebException webException)
    {
        Response.Redirect("ErrorPage.aspx?status="
+ webException.Status);
        return;
    } }

您可以在此link了解我的解决方案。