收到错误时如何防止在提交()上重定向
How to prevent redirect on submit() when error is received?
我正在使用像 http://musicbrainz.org/release/72cf3c87-d97d-49cc-8781-661ad3580091/cover-art-uploader?id=17477511090 这样的页面。 这通常是 iframe 的源代码,但我在 iframe 之外的用户脚本中使用它。 我一直在测试使用 javascript 在该页面上提交表单,但我不希望提交后重定向。
这是我从控制台运行的 js:
jQuery(document.forms[0]).submit(function (e) {
e.preventDefault();
alert('foo');
return false;
})[0].submit();
据我所知,它应该提交,然后事件处理程序启动以停止重定向。 但是,当服务器给出 200 状态以外的任何状态时,例如 500 内部服务器错误,我仍然会收到重定向。
所以 1)如何检测错误及其状态代码,2)即使结果是错误,我如何防止重定向?
使用普通的 submit(),这看起来并不乐观。
但是,您可以做到。 只需在从表单创建的 FormData 上使用 XHR 的 .send(),而不是尝试直接提交表单。 与 .submit() 不同,.send() 不会导致 document.location 跟随重定向。 相反,它只会遵循GET中的重定向,用于传递给XHR回调的参数,而不会触及document.location。
有关创建 FormData 的示例代码,请参阅 Rob W 在上传前对带有 chrome 扩展名的 Grab 文件的回答。
对于跨域.send(),请参阅是否可以执行异步跨域文件上传?。
相关文章:
- PHP表单提交和重定向
- 重定向到“提交”按钮上的其他控制器
- 表单提交时重定向页面
- 在Jquery easyui中,多个选项卡提交按钮点击事件正在重定向到主页(第一个)选项卡
- Iframe提交并将用户重定向回原始页面,但Iframe似乎仍然存在
- ajax表单提交后从客户端重定向
- 收到错误时如何防止在提交()上重定向
- Ajax 提交表单有时有效,有时直接重定向到操作网址
- 模拟隐藏表单提交&使用JavaScript重定向以实现安全支付
- 高级表单提交-单选、复选框和重定向
- 使用javascript创建Form元素,并在不重定向/刷新的情况下提交
- 如何使用单击此处提交重定向表单
- 使用jquery进度条重定向到表单提交后的另一个页面
- Ajax 提交重定向到新页面(不应该)
- 表单提交重定向到新网址
- HTML 正在创建提交重定向
- 将详细信息发送到数据库后,正在将表单提交重定向到URL
- ajax表单提交重定向类似于非ajax表单
- 表单提交重定向不工作使用联系人表单7 WordPress插件
- Jquery地图插件不做任何提交-重定向到"locator.html#"而不是发射形式的行动