Chrome 100.x页面跳转被取消并返回原页面的问题排查
排查Chrome 100.x表单提交异常的方向
客户使用Chrome 100.x访问Web应用时,点击订单链接调用以下函数提交表单,服务端本应重定向至订单详情页,但页面刷新后仍停留在订单列表页:
function NavigateToOrder(orderId) { // Some input fields changed here document.forms[0].submit(); // there is only one form in the entire dom. }
Network标签显示.submit()触发的POST请求立即被标红取消,随后发起同URL的POST请求,Initiator显示为“Other”,已尝试移除表单onsubmit监听器、删除New Relic监控脚本、无痕窗口禁用扩展(仅保留Google Docs Offline),问题依旧。以下是进一步排查方向:
- 检查表单
target属性:确认表单是否被意外设置了target="_blank"或自定义target值,Chrome部分版本对target的处理逻辑差异可能导致提交行为异常。 - 排查Chrome 100.x版本特性:Chrome 100是版本号跨百的版本,可能存在表单提交逻辑的变更,对比Chrome 99/101版本的表现,或查看Chrome 100发布文档中DOM/表单相关的修改记录。
- 监听页面卸载类事件:在开发者工具的Event Listeners面板中,检查是否有代码注册了
beforeunload或unload事件,这类事件可能阻止页面跳转或干扰提交流程,逐一移除测试。 - 验证异步操作干扰:在
submit()前后添加日志,确认执行顺序;暂时注释表单字段修改代码,只保留document.forms[0].submit()测试,排查是否有异步操作(如Promise、setTimeout)干扰提交。 - 检查安全策略限制:查看Network请求的Response Headers,确认站点的HSTS、CSP等安全策略是否在Chrome 100中有更严格的执行,同时检查Console面板是否有相关安全警告。
- 确认表单
action属性:在submit()执行前打印document.forms[0].action的值,确认表单提交的目标URL是否符合预期,排查相对路径解析在Chrome 100中的差异。 - 测试原生提交行为:在页面添加原生
<input type="submit">按钮,点击提交表单,若原生行为正常则问题出在JS触发逻辑;若原生也异常,则指向页面本身或Chrome版本兼容性问题。
内容的提问来源于stack exchange,提问作者fahadash
相关产品推荐
相关产品推荐

