Firefox页面跳转前POST请求遭NS_BINDING_ABORTED终止,如何处理?
页面跳转前自动保存表单数据的Firefox兼容问题解决办法
问题场景
实现页面跳转前自动保存表单数据时,通过onbeforeunload事件触发表单POST提交,但Firefox浏览器会抛出NS_BINDING_ABORTED错误,直接取消POST请求并执行页面跳转。此外,当同一操作中同时存在异步POST请求与页面跳转的GET请求时,Firefox会优先执行GET请求,阻止POST请求完成。
解决方案
将提交表单的异步POST请求通过setTimeout延迟0毫秒执行,代码示例如下:
setTimeout(postFunctionName, 0);
原理说明
setTimeout(fn, 0)会将POST请求的执行放入浏览器事件循环的下一个任务队列,让浏览器先完成当前页面跳转的初始化操作,再处理POST请求,从而规避Firefox因任务优先级判断直接终止POST请求的问题。
内容的提问来源于stack exchange,提问作者Uma Sankar
相关产品推荐
相关产品推荐

