From 7a7556c6ceb460c3e5d4cc77bfc984b70a508525 Mon Sep 17 00:00:00 2001 From: Taoning Ge Date: Thu, 10 Sep 2026 11:39:29 +0800 Subject: [PATCH] framework: no-store cache for json responses & vary Accept --- framework/framework/base.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/framework/framework/base.ts b/framework/framework/base.ts index a70f62574c..51708a2825 100644 --- a/framework/framework/base.ts +++ b/framework/framework/base.ts @@ -125,6 +125,7 @@ export default (logger, xff, xhost) => async (ctx: KoaContext, next: Next) => { } } finally { if (!request.websocket) { + ctx.vary('Accept'); if (response.etag && request.headers['if-none-match'] === response.etag) { ctx.response.status = 304; } else if (response.redirect && !request.json) { @@ -138,6 +139,9 @@ export default (logger, xff, xhost) => async (ctx: KoaContext, next: Next) => { || (request.json ? 'application/json' : ctx.response.type); + if (ctx.response.type === 'application/json' && !ctx.response.get('Cache-Control')) { + ctx.set('Cache-Control', 'no-store'); + } } } }