【问题标题】:Can I change the page's HTML status code on the client side?我可以在客户端更改页面的 HTML 状态代码吗?
【发布时间】:2023-04-08 21:36:02
【问题描述】:

我有一个静态 HTML 网页,我想将其状态代码设置为 404“未找到”。

但是,我想使用 javascript 或 jQuery,而不是任何服务器端语言来做到这一点。

如何在客户端上执行此操作?使用 javascript 或 <meta> 标签?

【问题讨论】:

  • 这样做的目的是什么?我讨厌 404,所以当页面可用时,高兴!
  • 我尝试在 javascript 中执行此操作,因为当限制设置为 javascript only 时,它很有趣,而且更多
  • 这没什么意思,很荒谬。 404 表示“您通过 HTTP 请求的内容不存在”。它仅作为 HTTP 响应标头的一部分才有意义。
  • 我可以想象在一个单页站点上,处理不受支持的 REST 情况,您想要执行设置 404 之类的操作,并期望浏览器处理默认的 404 行为。尽管如此,我必须同意 Marcel 的观点,即您可以处理这种情况,因为您可以显示自定义(客户端 javascript 生成)404 页面,帮助您的用户返回到您网站的正确流程。

标签: javascript jquery http-status-code-404 client-side


【解决方案1】:

无法使用客户端编程设置 HTTP 响应代码。

【讨论】:

    【解决方案2】:

    您可以将页面重定向到 JavaScript 中不存在的页面。我不知道你为什么要这样做,但是嘿嘿:

    <script type="text/javascript">
    <!--
    window.location = "zomgomgthispagedoesntexistlololol.html"
    //-->
    </script>
    

    但大卫是对的,因为它是客户端脚本,所以无法设置页面状态。

    【讨论】:

      【解决方案3】:

      我认为这个练习背后的意义如下:您想要加载一个向您的用户显示自定义错误消息的页面。同时,您想告诉您的 Google Search Appliance(或类似系统)必须从索引中删除所请求的页面。 我有同样的问题,无法嵌入服务器端脚本。我还没有找到客户端解决方案。

      【讨论】:

      • 改用这个:&lt;meta name="robots" content="noindex" /&gt;
      【解决方案4】:

      您为服务器上不存在的页面设置了重定向。由于用户请求的页面不存在,因此您将无法在浏览器中使用页面。

      在 ASP.NET 中,您可以在 web.config 文件的 customErrors 部分中设置默认页面,如下所示:

      <customErrors mode="RemoteOnly" defaultRedirect="~/error.aspx">
        <error statusCode="404" redirect="notFound.aspx"/>
        <error statusCode="403" redirect="accessError.aspx"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-04
        • 1970-01-01
        • 2014-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多