外部页面刷新时,iframe内调用ajax的abort方法,页面仍会等待请求结束再刷新

我在一个页面里嵌入一个iframe,iframe链接为另一个页面,内部页面中调用Ajax向后台做长轮询,后台接到请求直接挂起,直到又返回或是超时(超时时间后台设置为20秒)。
现在如果外部页面被用户强制刷新,页面会等到iframe内的ajax请求超时再刷新,如何能在刷新时强制中断内部的ajax请求?

我试过监听页面刷新事件,然后用abort方法中断请求,在浏览器F12-网络中,看到这个ajax请求的状态已经由pending变成canceled了,但是页面仍会等到20秒之后再刷新,这是为什么呢?

这是iframe内页面JS,监听外部页面刷新事件,刷新时Log可以打出,证明捕捉到了事件,ajax请求也变成canceled,但是页面并不立即刷新。

window.parent.onbeforeunload = function() {
    console.log("Refresh");
    ajaxpost.abort();
}

这跟后台服务挂起方式有关系吗?我用.net mvc的异步controller实现的。

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题