浏览器收到302请求时显示占位符页面

时间:2017-08-23 10:15:41

标签: javascript jquery spring spring-mvc

当浏览器从服务器接收重定向请求时,浏览器会显示一个错误页面,其中显示“找不到页面”,然后重定向到相应的网址。

我正在寻找解决方案,其中浏览器显示虚拟页面,而不是显示“找不到页面”页面。

我认为这是支付网关通过显示“不要按回/刷新按钮”的页面所做的事情。

4 个答案:

答案 0 :(得分:4)

我相信您最初的前提是,当浏览器收到302响应代码时,它会显示错误,可能不正确。

您可以在许多网站上看到重定向,其中所有浏览器都只是更改地址栏中的地址并加载最终页面,而不会同时显示任何内容。

此外,302 HTTP状态代码不具有正文部分,如果它具有正文部分,则通常会被忽略。所以,我只能想到可能发生的两件事:

  1. 您在接受302代码(较旧的?)时使用的浏览器有不同的行为。
  2. 服务器没有发送302,实际上是发回一个带有重定向代码的页面。
  3. 检查这一点的好方法取决于您使用的是哪种浏览器,但大多数现代浏览器都有一个“开发者”。窗格,您可以在其中查看传出请求和传入响应及其标题和状态代码。然后,您可以验证实际发生的情况。

    如果案件是前者,那么我担心在不改变浏览器本身的情况下你可能做的事情并不多。如果是后者,那么假设服务器代码在您的控制之下,您可以更改返回的任何内容。

答案 1 :(得分:1)

  

我认为这是支付网关正在做的事情,显示一个页面,上面写着"不要按回/刷新按钮"

要实现此目的,您可以使用meta标记刷新 / 重定向。以下代码段取自this SO post

<meta http-equiv="refresh" content="3;url=http://www.google.com/" />

答案 2 :(得分:1)

您可以添加Custom error page

要将302映射到静态HTML文件,您需要在resources / public / error下创建一个名为302.html的html文件,您的文件夹结构应如下所示:

src/
 +- main/
     +- java/
     |   
     +- resources/
         +- public/
             +- error/
                 +- 302.html

答案 3 :(得分:1)

如果您正在使用Spring(正如标记所示),您可以使用一个类来处理重定向,这会立即将您重定向到您想要的页面。

有多种不同的方法来处理重定向,这里有一个很好的指南: http://www.baeldung.com/spring-redirect-and-forward