当收到HTTP 302时,jquery.form插件,ajaxSubmit和挂钩

时间:2011-06-26 15:23:39

标签: javascript jquery ajax http jquery-forms-plugin

到目前为止,我正在使用jquery.form插件及其ajaxSubmit方法取得了巨大的成功,但现在我仍然坚持处理HTTP 302的方式。让我解释一下:

  1. 用户使用ajaxSubmit
  2. 通过xhr提交表单
  3. 如果表单无效,则响应包含带有错误的表单的HTML代码等等(HTTP 200),这没关系
  4. 如果for有效,后端会返回HTTP 302,但这就是问题......
  5. ajaxSubmit似乎抓住302并在内部进行重定向并获取重定向的内容,因此我在successcomplete事件回调中得到的是它在检索之后检索到的HTTP 200跟随重定向提供的位置。

    我想做的是检查302,然后使用重定向位置网址执行某些操作(例如,重定向浏览器窗口,而不仅仅是更新当前页面的DOM的一部分。)

    有可能实现这一目标吗?我觉得有点愚蠢,因为我确定它是:$

    任何帮助非常感谢:)

1 个答案:

答案 0 :(得分:1)

自我回答。

我偶然发现this blog post这个人使用Django并且在浏览器xmlHttpRequest实现中遇到了与HTTP重定向支持相同的问题。

他推出了一个非常好的解决方案,专门处理来自后端的ajax请求,设置自定义状态代码并在ajax事件回调之后进行测试。

希望这有助于其他人。