Express返回JSON时浏览器不显示raw | parsed标签,如何开启该功能?
如何让Express返回的JSON在浏览器显示“raw | parsed”标签?
嘿,这个问题我碰到过,其实很容易解决~
浏览器能显示“raw | parsed”切换标签,核心是它识别到了返回的内容是标准的JSON格式,而且响应头里的Content-Type被正确设置成了application/json。虽然你的代码里用res.send()返回对象/数组时,Express会自动转成JSON并设置头,但有时候可能因为一些小细节导致浏览器没识别到,咱们可以换个更稳妥的方式:
改用
res.json()方法返回JSON数据
这是Express专门为发送JSON响应设计的方法,它会确保Content-Type头被严格设置为application/json; charset=utf-8,还会自动处理JSON的转义和格式化。修改你的代码如下:const express = require('express') const app = express() app.get('', (req, res) => { res.send('<h1>Weather</h1>') }) app.get('/help', (req, res) => { res.json([{ name: 'Andrew' }, { name: 'Sarah' }]) }) app.get('/about', (req, res) => { res.send('<h1>About</h1>') }) app.get('/weather', (req, res) => { res.json({ forecast: 'It is snowing', location: 'Philadelphia' }) }) app.listen(3000, () => { console.log('Server is up on port 3000.') })如果还是不行,手动设置响应头(可选)
要是换了res.json()还是没显示,你可以手动强制设置Content-Type头,确保浏览器能准确识别:app.get('/help', (req, res) => { res.setHeader('Content-Type', 'application/json; charset=utf-8') res.send([{ name: 'Andrew' }, { name: 'Sarah' }]) })不过一般情况下,
res.json()就足够解决问题啦。
另外还要确认下你的浏览器版本,Chrome、Firefox这些主流浏览器的最新版本都原生支持这个JSON查看功能,要是用的旧版本,建议更新一下试试~
内容的提问来源于stack exchange,提问作者Yuri Molodyko
相关产品推荐
相关产品推荐

