如何避免缓存特定 Nextjs api 路由?

How to avoid caching for specific Nextjs api route?

我有 nextjs api 路由 /api/auth/signout,它基本上只是清除特定的 cookie 并发回 json。

问题是,当我在 Vercel 中部署项目时,这个特定的 API 第一次正常工作(清除 cookie 并给出 200 响应)但后来它不起作用(未清除 cookie 并给出 304 响应)。

我想知道,有什么办法可以避免只对这条路由进行缓存吗?

解决此问题的最佳方法是什么?

您可以为每个 API 端点配置 Cache-Control header

https://nextjs.org/docs/api-reference/next.config.js/headers#cache-control

在你的情况下,像这样的事情可能会成功:

res.setHeader('Cache-Control', 'no-store')

next.config.js

上添加了此配置
async headers() {
    return [
      {
        source: '/api/<route-name>',
        headers: [
          {
            key: 'Cache-Control',
            value: 'no-store, max-age=0',
          },
        ],
      },
    ];
  },