首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NextJs:设置状态代码404而不进行重定向

NextJs:设置状态代码404而不进行重定向
EN

Stack Overflow用户
提问于 2020-10-14 06:27:35
回答 1查看 4.1K关注 0票数 2

我正试图解决我们的网络应用程序的一个具体要求。我们有一个页面‘项目’,如果一个项目出售,应该继续显示项目,但页面的响应代码必须设置为404。我在尝试这样的方法:

在第/id/Item.tsx页中:

代码语言:javascript
运行
复制
static async getInitialProps(ctx) {
   //retrieve item
   if (item.isSoldOut) {
       ctx.res.statusCode = 404;
   }
   //all other stuff
}

但是它将自动重定向到状态代码302的主页。如何实现这种行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-14 07:40:38

Next.js文档建议使用getStaticPropsgetServerSideProps代替getInitialProps (https://nextjs.org/docs/api-reference/data-fetching/getInitialProps)

使用getServerSideProps,您可以如下所示

代码语言:javascript
运行
复制
export const getServerSideProps: GetServerSideProps = async ({ req, res }) => {
    res.statusCode = 404;
    return { props: {} }
}

使用getInitialProps,您可以这样做:

代码语言:javascript
运行
复制
static async getInitialProps({res}) {
    // server side
    if(res) res.statusCode = 404;

    // client side
    return { statusCode : 404 }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64347721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档