传统上我使用 FireBug 来调试我的 AJAX 请求。它允许您检查请求的内容以及从服务器发回的响应。(当这些发生时,它还会在控制台中通知您,这是 Chrome 似乎缺乏的一个有用功能)。
在 Chrome 中,我似乎只能查看请求,而不是响应。当我尝试检查响应时,UI 只显示“无可用内容”(开发人员工具 > 资源 > myRequest.php > 内容)。我是否必须打开某些东西才能让 Chrome 开发者工具记住这些请求?
编辑:如果重要的话,这些请求是在 Flash 对象中发出的。
传统上我使用 FireBug 来调试我的 AJAX 请求。它允许您检查请求的内容以及从服务器发回的响应。(当这些发生时,它还会在控制台中通知您,这是 Chrome 似乎缺乏的一个有用功能)。
在 Chrome 中,我似乎只能查看请求,而不是响应。当我尝试检查响应时,UI 只显示“无可用内容”(开发人员工具 > 资源 > myRequest.php > 内容)。我是否必须打开某些东西才能让 Chrome 开发者工具记住这些请求?
编辑:如果重要的话,这些请求是在 Flash 对象中发出的。
如果您使用的是 Google Chrome 的开发者频道:
http://www.chromium.org/getting-involved/dev-channel
...您应该能够在开发人员工具控制台中右键单击,然后单击“启用 XMLHttpRequest 日志记录”。
启用后,您将在控制台中看到 XHR 请求,并能够单击它们以将您带到资源面板,您将能够在其中看到 XHR 的内容。
您可能看到的只是OPTIONS
CORS 请求的请求被 Google Chrome 检查器视为 XHR 请求。因此,如果您按 XHR 请求进行过滤,您可能只会看到初始 OPTIONS 预检请求,其响应没有内容,并且会感到困惑,因为 Chrome 似乎拒绝显示响应。禁用过滤器并转到同一 URL 的下一个请求,这很可能是对应于该 CORS 预检请求的“真实”请求。
我遇到了同样的问题:来自 Flash 的 POST 请求 + JSON 响应 + Chrome 检查器中没有显示响应。FF + FireBug 没问题。
在响应标头中将 charset=utf-8 添加到 Content-Type 为我解决了这个问题:
内容类型:应用程序/json;字符集=utf-8
我不确定这是否是解决此问题的正确解决方案,但至少我现在能够在 Chrome Inspector 中看到 JSON 响应。
如果请求是由插件生成的,则 ajax 响应的内容尚不可见。这个问题有可能很快得到解决。
打开资源跟踪,然后检查资源选项卡。如果您选中“始终使用资源跟踪”,资源跟踪似乎工作得更好。
I had empty response because the script was sending empty data by
die();
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);
};
})();
在失败回调中,第一个参数有一个名为 responseText 的属性。
原因不仅可以在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 XHR
并REPLAY
显示预览。
你有它