问题:A页面重定向到B页面,但是从B页面回退到A页面时,A页面没有进行重定向,刷新A页面时正常。

41 阅读1分钟

是由于缓存导致的。

当你从A页面进行重定向到B页面时,浏览器会缓存A页面的重定向信息。当你从B页面回退到A页面时,浏览器会尝试从缓存中加载A页面,而不是重新请求服务器。因此,A页面没有进行重定向。可以尝试清除浏览器缓存或者在A页面添加一个no-cache的HTTP头信息,告诉浏览器不要缓存A页面的重定向信息。

  1. 添加以下信息来告诉浏览器不要缓存A页面的重定向信息, 这些信息告诉浏览器不要缓存页面,每次请求都要重新从服务器获取最新的内容。你可以在服务器端设置这些HTTP头信息,
Cache-Control: no-cache, no-store, must-revalidate  
Pragma: no-cache  
Expires: 0
  1. 在A页面的HTML文件中添加以下meta标签:
<meta httpEquiv="Cache-Control" content="no-cache, no-store, must-revalidate" />

<meta httpEquiv="Pragma" content="no-cache" />

<meta httpEquiv="Expires" content="0" />
  1. 如果重定向操作是在服务端渲染时处理的,而不是在客户端进行的。在这种情况下,你可以尝试在服务端设置响应头,告诉浏览器不要缓存A页面的重定向信息。在服务端代码中添加以下代码:
res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate');  
res.setHeader('Pragma', 'no-cache');  
res.setHeader('Expires', '0');