在Chrome开发人员工具中,资源的状态=取消是什么意思?
什么会导致页面被取消? 我有Chrome开发人员工具的屏幕截图。
这经常发生,但不是每次都发生。 好像有一些其他资源被缓存,页面刷新将加载LeftPane.aspx。 而真正奇怪的是,这只发生在谷歌浏览器中,而不是Internet Explorer 8中。Chrome的任何想法都会取消请求?
我们遇到了类似的问题,Chrome取消了在帧或iframe中加载内容的请求,但只是间歇性地执行,而且似乎取决于计算机和/或Internet连接的速度。
这些信息已过时几个月,但我从头开始构建Chromium,通过源代码查找所有可能取消请求的位置,并将所有这些位置的断点打上调试对象。 从内存中,Chrome将取消请求的唯一地点:
在我们的例子中,我们最终将其追溯到一帧,试图将HTML附加到另一帧,有时发生在目标帧甚至加载之前。 一旦你触及一个iframe的内容,它就不能再加载资源(它怎么知道把它放在哪里?),所以它取消了请求。
status = cancel也可能发生在JavaScript事件的ajax请求上:
<script>
$("#call_ajax").on("click", function(event){
$.ajax({
...
});
});
</script>
<button id="call_ajax">call</button>
事件成功发送请求,但是被取消(但由服务器处理)。 原因是,无论您是否在同一个点击事件上发出任何Ajax请求,元素都会在点击事件上提交表单。
为了防止请求被取消,JavaScript event.preventDefault(); 必须被称为:
<script>
$("#call_ajax").on("click", function(event){
event.preventDefault();
$.ajax({
...
});
});
</script>
您可能需要检查“X-Frame-Options”标题标签。 如果它设置为SAMEORIGIN或DENY,那么iFrame插入将被Chrome(和其他浏览器)按规范取消。
另外请注意,某些浏览器支持ALLOW-FROM设置,但Chrome不支持。
要解决这个问题,您需要删除“X-Frame-Options”标题标签。 这可能会导致您发生点击劫持攻击,因此您需要确定风险以及如何缓解风险。
链接地址: http://www.djcxy.com/p/36427.html上一篇: What does status=canceled for a resource mean in Chrome Developer Tools?
下一篇: Why does Chrome use the client cache differently in these two scenarios?