55

传统上我使用 FireBug 来调试我的 AJAX 请求。它允许您检查请求的内容以及从服务器发回的响应。(当这些发生时,它还会在控制台中通知您,这是 Chrome 似乎缺乏的一个有用功能)。

在 Chrome 中,我似乎只能查看请求,而不是响应。当我尝试检查响应时,UI 只显示“无可用内容”(开发人员工具 > 资源 > myRequest.php > 内容)。我是否必须打开某些东西才能让 Chrome 开发者工具记住这些请求?

编辑:如果重要的话,这些请求是在 Flash 对象中发出的。

4

9 回答 9

87

如果您使用的是 Google Chrome 的开发者频道:

http://www.chromium.org/getting-involved/dev-channel

...您应该能够在开发人员工具控制台中右键单击,然后单击“启用 XMLHttpRequest 日志记录”。

启用后,您将在控制台中看到 XHR 请求,并能够单击它们以将您带到资源面板,您将能够在其中看到 XHR 的内容。

于 2010-07-08T18:43:41.513 回答
10

您可能看到的只是OPTIONSCORS 请求的请求被 Google Chrome 检查器视为 XHR 请求。因此,如果您按 XHR 请求进行过滤,您可能只会看到初始 OPTIONS 预检请求,其响应没有内容,并且会感到困惑,因为 Chrome 似乎拒绝显示响应。禁用过滤器并转到同一 URL 的下一个请求,这很可能是对应于该 CORS 预检请求的“真实”请求。

于 2016-09-07T15:35:21.513 回答
3

我遇到了同样的问题:来自 Flash 的 POST 请求 + JSON 响应 + Chrome 检查器中没有显示响应。FF + FireBug 没问题。

在响应标头中将 charset=utf-8 添加到 Content-Type 为我解决了这个问题:

内容类型:应用程序/json;字符集=utf-8

我不确定这是否是解决此问题的正确解决方案,但至少我现在能够在 Chrome Inspector 中看到 JSON 响应。

于 2013-08-30T09:18:52.803 回答
2

如果请求是由插件生成的,则 ajax 响应的内容尚不可见。这个问题有可能很快得到解决。

于 2010-07-08T15:12:39.193 回答
1

打开资源跟踪,然后检查资源选项卡。如果您选中“始终使用资源跟踪”,资源跟踪似乎工作得更好。

于 2010-07-08T02:35:12.463 回答
1

I had empty response because the script was sending empty data by

die();
于 2015-05-08T18:39:50.303 回答
1

解决方案PHP

原因可能是请求的 url(php页面)有错误。但由于许多主机已禁用错误输出,您需要在请求.php的文件中启用它(放在文件顶部的某处):

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

之后,您将在那里看到响应。


前端响应解决方案:

有时,如果您在浏览器控制台中执行此代码,您可能会进行快速调试:

(function() {
    var origOpen = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function() {
        this.addEventListener('load', function() {
            console.log(this);
        });
        origOpen.apply(this, arguments);
    };
})();
于 2018-12-23T15:31:17.887 回答
0

在失败回调中,第一个参数有一个名为 responseText 的属性。

于 2013-05-13T14:40:22.533 回答
0

原因不仅可以在chrome中,还可以通过JS代码停止预览。例如,有一些Vue.js被调用的插件vue-resorcese,它有这个问题: Chrome, no response data after OPTIONS request? 我在这个问题上生活了几个月,直到今天发现了这个问题。当前问题从未给出答案,所以我现在在这里分享。

详细信息:此插件具有创建 XHR 对象的下一个代码:

if ('responseType' in xhr && SUPPORTS_BLOB) {
       xhr.responseType = 'blob';
}

这段代码没问题,预览工作,但直到一些 chrome 更新。今天我评论这个的时候,预览又出现了!所以首先,尝试检查你的 XHR 包装器,它可能有这样的东西。

这是一个罕见的问题,因为它仅通过 CORS 预检进行复制。顺便说一句,右键单击OPTIONS XHRREPLAY显示预览。

你有它

于 2017-04-15T20:13:58.853 回答