You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Next.js新App Router正确发送XML文件?

解决Next.js route.ts返回XML不被浏览器识别的问题

核心问题是你没在响应里设置正确的Content-Type头,浏览器默认把返回内容当成普通文本解析,自然不会识别为XML。具体操作如下:

1. 在route.ts中添加响应头配置

在你的路由处理函数里,返回响应时必须指定Content-Type: application/xml(如果是RSS这类特定XML,可对应使用application/rss+xml),同时返回构造好的XML字符串。

示例代码:

// app/api/[your-route]/route.ts
export async function GET() {
  // 构造合法的XML内容
  const xmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<root>
  <data>测试XML内容</data>
</root>`;

  return new Response(xmlContent, {
    headers: {
      'Content-Type': 'application/xml; charset=utf-8',
    },
  });
}

2. 验证效果

启动Next.js应用后访问该路由,浏览器会自动识别XML格式并解析标签结构(不同浏览器的显示样式可能不同,但都会正常渲染XML层级)。

额外注意点

  • 建议保留XML开头的版本与编码声明<?xml version="1.0" encoding="UTF-8"?>,帮助浏览器更准确识别内容编码。
  • 如果生成的是特定类型XML(比如RSS、Atom),要对应使用专属的Content-Type,比如RSS用application/rss+xml,Atom用application/atom+xml。

内容的提问来源于stack exchange,提问作者Yoann Buzenet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:04:50