为什么我的Chrome开发工具显示

未能显示响应数据

在响应时,返回的内容类型是文本/html?

在开发人员工具中查看返回的响应的替代方法是什么?


当前回答

使用firefox,它总是显示响应,并提供与chrome相同的工具。

其他回答

使用firefox,它总是显示响应,并提供与chrome相同的工具。

我认为这只发生在你有“保存日志”检查,你试图查看之前的请求的响应数据后,你已经导航离开。

例如,我查看了加载此堆栈溢出问题的响应。你可以看到。

第二次,我重新加载了这个页面,但没有看header或Response。我导航到另一个网站。现在,当我查看响应时,它显示“加载响应数据失败”。

这是一个众所周知的问题,已经存在了一段时间,并且争论了很多。

Bug仍然活跃。 这发生在JS成为新页面(200)或重定向(301/302)的启动器时 一种可能的方法来修复它-它禁用JavaScript请求。 例如,在puppeteer中,你可以在拦截请求(page.on('request'))时使用:page.setJavaScriptEnabled(false)

如果使用fetch进行AJAX请求,除非使用.text()、.json()等读取,否则不会显示响应。

如果你这样做:

 r = fetch("/some-path");

开发工具中不会显示响应。 它会在你运行后显示:

r.then(r => r.text())

对于那些从谷歌来到这里的人,对于那些之前的答案没有解决谜团的人……

如果使用XHR进行服务器调用,但不返回响应,则会发生此错误。

示例(来自Nodejs/React,但同样可以是js/php):

App.tsx

const handleClickEvent = () => {
    fetch('/routeInAppjs?someVar=someValue&nutherVar=summat_else', {
        method: 'GET',
        mode: 'same-origin',
        credentials: 'include',
        headers: {
          'content-type': 'application/json',
          dataType: 'json',
        },
    }).then((response) => {
        console.log(response)
    });
}

App.js

app.route('/getAllPublicDatasheets').get(async function (req, res) {
    const { someVar, nutherVar } = req.query;
    console.log('Ending here without a return...')
});

Console.log将在这里报告:

Failed to show response data

为了解决这个问题,将返回响应添加到路由的底部(服务器端):

res.json('Adding this below the console.log in App.js route will solve it.');