NextJS 13 App Router如何返回XML/Text格式响应?
在Next.js App Router中返回XML格式响应
要复刻原Express路由返回XML内容的功能,你需要直接创建Response实例并手动设置响应头,替代默认的Response.json()方法(该方法会自动将内容转为JSON并设置application/json类型)。
正确的代码示例:
export async function POST(request: Request) { // 确保twiml已正确生成并可转为字符串 return new Response(twiml.toString(), { headers: { 'Content-Type': 'text/xml', }, }); }
关键说明:
- 移除原代码中多余的
response: Response参数:App Router的路由处理函数仅接收request和可选的context参数,无需手动传入Response对象。 - 通过
new Response()直接传入XML字符串,并在配置对象的headers中指定Content-Type: text/xml,和原Express路由的res.set("Content-Type", "text/xml")效果完全一致。 - 此写法会直接输出XML内容,而非用JSON格式包裹字符串。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

