【发布时间】:2012-08-11 11:15:35
【问题描述】:
我正在使用像 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 Internal Server Error,我仍然会得到重定向。
所以 1) 我如何检测错误及其状态代码, 和 2) 如何防止重定向,即使结果是错误的?
【问题讨论】:
-
afaik 表单的提交动作是通过重定向发生的;防止默认/返回 false 停止提交(通过停止重定向)。要在浏览器不显示新页面的情况下发出 http 请求,您需要一个 ajax 解决方案。见jQuery .ajax。
-
那不行,因为它会触发跨域限制。
-
对于搜索表单?它似乎在同一个域上。请参阅我包含的示例
-
不,提交URL在动作属性中;它正在提交给 s3。
标签: javascript jquery form-submit