我在一个页面里嵌入一个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实现的。