Can I change the page's HTML status code on the client side?

后端 未结 5 1818
刺人心
刺人心 2021-01-18 00:24

I have a static HTML web page and I want to set its status code to 404 \"Not found\".

But, I want to do this using javascript or jQuery, not any server

相关标签:
5条回答
  • 2021-01-18 00:48

    I'm currently faced with issue. I knew it wouldn't be possible but thought I'd give it a look anyway. Reason I'm facing this is because of vue-router and the limitations it has in history mode. They suggest setting a server-side configuration that catches all URLs that could be a client-side route-able and returning the root/index.html for the client-side routing to take over. And then another catch-all client side if the route doesn't exist there. What they fail to explain is how you can report such a failing to crawlers/indexers with the real status code. With this solution you just get 200s going to any requestors even though the page is not found.

    https://router.vuejs.org/en/essentials/history-mode.html

    0 讨论(0)
  • 2021-01-18 00:51

    I think the sense behind this exercise is the following: You want to load a page that displays a custom error message to your users. At the same time you want to tell your Google Search Appliance (or alike systems) that the requested page must be deleted from the index. I have the same problem where server-side scripts cannot be embedded. I haven't found a client-side solution yet.

    0 讨论(0)
  • 2021-01-18 00:54

    It is impossible to set the HTTP Response code using client side programming.

    0 讨论(0)
  • 2021-01-18 01:01

    You can redirect the page to a non existent one in JavaScript. I have no idea why you would want to do this, but hey ho:

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

    But David is right, there is no way to set THAT pages status as it is a client side script.

    0 讨论(0)
  • 2021-01-18 01:03

    You set redirection for non-existant pages on the server. You will not have a page to work with in the browser, since the page the user requested does not exist.

    In ASP.NET you can set up a default page in the customErrors section of the web.config file like this:

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

    0 讨论(0)
提交回复
热议问题