Javascript 检查域中是否存在网页,否则加载其他网页

Javascript 检查域中是否存在网页,否则加载其他网页,javascript,jquery,Javascript,Jquery,在不使用任何服务器端语言的情况下,我尝试使用JavaScript检查网页是否存在于同一个域中,而不是跨域:如果存在,则加载它;如果没有,请加载另一个。然而,我下面的代码不起作用,出于某种原因,它似乎从未进入第二种情况:相反,它总是尝试加载页面,通常是photo_202023.html,不管它是否存在 值得注意的是,感谢让我意识到这一点的评论者:不存在的网页的URL加载在浏览器地址栏中,但显示的页面是主页。这是我尝试加载不存在的网页时的常见行为。因此,很可能web主机Firebase正在改变这种情

在不使用任何服务器端语言的情况下,我尝试使用JavaScript检查网页是否存在于同一个域中,而不是跨域:如果存在,则加载它;如果没有,请加载另一个。然而,我下面的代码不起作用,出于某种原因,它似乎从未进入第二种情况:相反,它总是尝试加载页面,通常是photo_202023.html,不管它是否存在

值得注意的是,感谢让我意识到这一点的评论者:不存在的网页的URL加载在浏览器地址栏中,但显示的页面是主页。这是我尝试加载不存在的网页时的常见行为。因此,很可能web主机Firebase正在改变这种情况下的行为,即使下面的代码就是我正在使用的全部代码

谢谢你的帮助

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

<script type="text/javascript">

var today = new Date();
var displayDay = today.getDate();
var displayMonth = today.getMonth();
var displayYear = today.getFullYear();

var checkFor = "photos/photo_" + displayYear + displayMonth + displayDay + ".html";

$.ajax({
    type: 'HEAD',
    url: checkFor,
success: function() {
        // page exists
    location.href=checkFor;
},
error: function() {
        // page does not exist
    location.href="photosredirect.html";
}
});

</script>

好的,感谢大家在引导我找到解决方案时的评论:问题在于web主机的配置。我在Firebase上托管代码,Firebase.json正在配置如果找不到页面会发生什么,即重定向到index.html。我删除了重写,代码按预期工作

我确实想尝试更微妙一点,在包含上述代码的/photos/或photos.html中保留所有页面的默认行为,但我肯定还是做错了什么——但这是另一个主题!再次感谢所有的评论

"rewrites": [
{
// Excludes specified pathways from rewrites
"source": "!/photos/**",
"destination": "/index.html"
}
    , {
// Excludes specified pathways from rewrites
"source": "!/photos.html",
"destination": "/index.html"
}
,
      {
// If it makes it here, it didn't match any previous routing
// Serves index.html for requests to files or directories that do not exist
"source": "**",
"destination": "/index.html"
}

在浏览器的调试工具中的“网络”选项卡中,对HEAD请求的响应是什么?谢谢,David。在General>Request URL:下,我看到了checkFor的值,尽管该网页不存在>Request Method:GET>Status Code:200。根据服务器的说法,在Request Headers>Referer:JS页面下,上面的代码是>升级不安全的请求:1Sounds like,该页面确实存在。服务器端代码可能有问题,可能是服务器应用程序返回自定义错误消息,但HTTP状态代码错误?是的,这是我能理解的。但这一页并不存在。哈,这让我想:我在使用引导。不存在的检查URL确实会出现在浏览器中,但加载的页面是我的主页,这是找不到页面时经常发生的情况。因此,我认为Bootstrap可能正在生成页面,但在显示错误URL时重定向到主页。所以我不知道在这种情况下如何改变行为?再次感谢你!您正在使用的任何web主机都设置了一个规则,将不存在的文件重定向到主页。您需要向主机提供商咨询有关配置此行为的详细信息。