Debugging 在Chrome开发者工具中,资源的状态=取消意味着什么?
什么会导致页面被取消?我有一个Chrome开发者工具的屏幕截图Debugging 在Chrome开发者工具中,资源的状态=取消意味着什么?,debugging,http,google-chrome,developer-tools,web-developer-toolbar,Debugging,Http,Google Chrome,Developer Tools,Web Developer Toolbar,什么会导致页面被取消?我有一个Chrome开发者工具的屏幕截图 这种情况经常发生,但不是每次都发生。似乎一旦缓存了一些其他资源,页面刷新就会加载LeftPane.aspx。真正奇怪的是,这只发生在谷歌浏览器上,而不是IE 8上。你知道为什么Chrome会取消一个请求吗?我们遇到了一个类似的问题,Chrome会取消在帧或iFrame中加载内容的请求,但只是间歇性地取消,这似乎取决于计算机和/或互联网连接的速度 这些信息已经过时几个月了,但我从头开始构建了Chromium,在源代码中查找所有可能取
这种情况经常发生,但不是每次都发生。似乎一旦缓存了一些其他资源,页面刷新就会加载LeftPane.aspx。真正奇怪的是,这只发生在谷歌浏览器上,而不是IE 8上。你知道为什么Chrome会取消一个请求吗?我们遇到了一个类似的问题,Chrome会取消在帧或iFrame中加载内容的请求,但只是间歇性地取消,这似乎取决于计算机和/或互联网连接的速度 这些信息已经过时几个月了,但我从头开始构建了Chromium,在源代码中查找所有可能取消请求的地方,并在所有地方设置断点进行调试。从内存中,Chrome将取消请求的唯一位置:
- 导致发出请求的DOM元素已被删除(即,正在加载IMG,但在加载之前,您删除了IMG节点)
- 您做了一些使加载数据变得不必要的事情。(即,您开始加载iframe,然后更改src或覆盖内容)
- 有许多请求要发送到同一服务器,早期请求的网络问题表明后续请求无法工作(DNS查找错误,导致早期(相同)请求,例如HTTP 400错误代码等)
在本例中,我们最终将其追溯到一个试图将HTML附加到另一个帧的帧,这有时发生在目标帧加载之前。一旦你触摸了iframe的内容,它就不能再将资源加载到其中(它怎么知道把它放在哪里?),所以它会取消请求。我有两个CSS文件,它们存储在我的CSS主文件夹之外的另一个文件夹中。我正在使用表达式引擎,发现问题出在我的htaccess文件的规则中。我刚刚将文件夹添加到我的一个条件中,它修复了它。下面是一个例子:
RewriteCond %{REQUEST_URI} !(images|css|js|new_folder|favicon.ico)
因此,您可能需要检查htaccess文件中是否存在任何潜在冲突您可能需要检查“X-Frame-Options”头标签。如果设置为SAMEORIGIN或DENY,则Chrome(和其他浏览器)将根据取消iFrame插入 另外,请注意,有些浏览器支持“允许从”设置,但Chrome不支持
要解决此问题,您需要删除“X-Frame-Options”标题标记。这可能会让您面临风险,因此您需要决定风险是什么以及如何减轻风险。以下是发生在我身上的情况:服务器为302重定向返回了格式错误的“位置”标头。 当然,Chrome没有告诉我这一点。我在firefox中打开页面,立即发现了问题。
很高兴有多个工具:)在我的例子中,我发现是jquery全局超时设置,一个jquery插件设置全局超时为500ms,这样当请求超过500ms时,chrome将取消请求。在我调用a时也发生了同样的情况。带$的js文件。ajax,并发出ajax请求,我所做的是正常调用。另一件需要注意的事情可能是AdBlock扩展,或者一般的扩展 但是“很多”人都有AdBlock
要排除扩展名,请在incognito中打开一个新选项卡,确保要测试的扩展名的“allow in incognito已关闭”。在iframe内不同域上的安全和非安全页面之间重定向时,我遇到了一个取消的请求。重定向请求在开发工具中显示为“已取消”请求 我有一个带有iframe的页面,其中包含由我的支付网关托管的表单。提交iframe中的表单时,支付网关将重定向回我服务器上的URL。重定向最近停止工作,结果变成“取消”请求 Chrome(我使用的是Windows 7 Chrome 30.0.1599.101)似乎不再允许在iframe中重定向到单独域上的非安全页面。为了解决这个问题,我只是确保iframe中的所有重定向请求都被发送到安全的URL 当我创建了一个只有iframe的更简单的测试页面时,控制台中出现了一条警告(我以前没有看到或没有看到):
重定向变成了一个被取消的请求,出现在个人电脑、Mac和Android上的Chrome浏览器中。我不知道这是否是特定于我的网站设置(SagePay Low Profile),或者Chrome中是否发生了变化。Chrome版本33.0.1750.154 m始终取消图像加载,如果我使用指向本地主机的浏览器;特别是在上进行用户代理欺骗(与屏幕设置相比) 当我关闭用户代理欺骗时;图像请求没有取消,我看到了图像 我还是不明白为什么;在前一种情况下,如果请求被取消,则请求头(注意:显示的是临时头)只有
- 接受
- 缓存控制
- 布拉格马
- 推荐人
- 用户代理
- 饼干
- 联系
- 主人
- 接受编码
- 接受语言
耸耸肩在我的例子中,显示电子邮件客户端窗口的代码导致Chrome停止加载图像:
document.location.href = mailToLink;
将其移动到$(窗口)。加载(函数(){…})而不是$(函数(){…})有帮助。status=cancelled也可能发生在JavaScript事件的ajax请求上:
<script>
$("#call_ajax").on("click", function(event){
$.ajax({
...
});
});
</script>
<button id="call_ajax">call</button>
$(“#调用_ajax”)。在(“单击”,函数(事件){
$.ajax({
...
});
});
呼叫
事件成功发送请求,但随后被取消(但由服务器处理)。原因是,无论您是否在同一个单击事件上发出任何ajax请求,元素都会在单击事件上提交表单
为了防止请求被取消,Ja
<script>
$("#call_ajax").on("click", function(event){
$.ajax({
...
});
});
</script>
<button id="call_ajax">call</button>
<script>
$("#call_ajax").on("click", function(event){
event.preventDefault();
$.ajax({
...
});
});
</script>
$('form').submit(function() {
$.validator.unobtrusive.parse($('form'));
var data = $('form').serialize();
data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val();
if ($('form').valid()) {
$.ajax({
url: this.action,
type: 'POST',
data: data,
success: submitSuccess,
fail: submitFailed
});
}
return false; //needed to stop default form submit action
});
<script>
window.location.href = "devhost:88/somepage";
</script>
<a href="" onclick="somemethod($index, hour, $event)">
<a href="javascript:void(0)" onclick="somemethod($index, hour, $event)">
$('button').on('click', function(e){
e.preventDefault();
//do ajax
$.ajax({
...
});
})
location.href = 'https://some.host.com/some/path'