当浏览器从服务器接收重定向请求时,浏览器会显示一个错误页面,其中显示“找不到页面”,然后重定向到相应的网址。
我正在寻找解决方案,其中浏览器显示虚拟页面,而不是显示“找不到页面”页面。
我认为这是支付网关通过显示“不要按回/刷新按钮”的页面所做的事情。
答案 0 :(得分:4)
我相信您最初的前提是,当浏览器收到302响应代码时,它会显示错误,可能不正确。
您可以在许多网站上看到重定向,其中所有浏览器都只是更改地址栏中的地址并加载最终页面,而不会同时显示任何内容。
此外,302 HTTP状态代码不具有正文部分,如果它具有正文部分,则通常会被忽略。所以,我只能想到可能发生的两件事:
检查这一点的好方法取决于您使用的是哪种浏览器,但大多数现代浏览器都有一个“开发者”。窗格,您可以在其中查看传出请求和传入响应及其标题和状态代码。然后,您可以验证实际发生的情况。
如果案件是前者,那么我担心在不改变浏览器本身的情况下你可能做的事情并不多。如果是后者,那么假设服务器代码在您的控制之下,您可以更改返回的任何内容。
答案 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