Javascript Next.js中的条件重定向
是否可以基于cookie值有条件地将用户重定向到另一个Url? 我知道我可以检查服务器上的cookie,然后重定向。 但是如果用户通过Javascript Next.js中的条件重定向,javascript,reactjs,server-side-rendering,nextjs,Javascript,Reactjs,Server Side Rendering,Nextjs,是否可以基于cookie值有条件地将用户重定向到另一个Url? 我知道我可以检查服务器上的cookie,然后重定向。 但是如果用户通过链接,我该怎么办呢。(我无法使用Route.push,因为它在服务器上未定义) 有没有办法只在浏览器上使用路由器 我知道至少有一种方法可以做到这一点:创建简单的按钮并在onClick处理程序中添加路由器推送和检查cookie,但这是正确的方法吗?您可以检查用户是否通过服务器或客户端访问了页面。 之后,您可以使用适当的工具有条件地重定向。 getInitialPro
链接
,我该怎么办呢。(我无法使用Route.push,因为它在服务器上未定义)
有没有办法只在浏览器上使用路由器
我知道至少有一种方法可以做到这一点:创建简单的
按钮
并在onClick
处理程序中添加路由器推送和检查cookie,但这是正确的方法吗?您可以检查用户是否通过服务器或客户端访问了页面。
之后,您可以使用适当的工具有条件地重定向。
getInitialProps
函数获取一个ctx
对象。您可以检查其是否在服务器或客户端上,如下所示:
import Router from 'next/router'
export default class Browse extends Component {
static async getInitialProps (ctx) {
if (ctx && ctx.req) {
console.log('server side')
ctx.res.writeHead(302, {Location: `/`})
ctx.res.end()
} else {
console.log('client side')
Router.push(`/`)
}
...
除非你真的确定,否则避免301。使用302进行临时移动。