zoukankan      html  css  js  c++  java
  • form 表单提交被拦截的问题处理方法

       异步ajax提交数据到服务器处理信息,处理成功后将返回的数据装载到对应界面的表单隐藏域中,然后再使用  $(document.body).append($form);   $form.submit();  提交表单,此时遇到谷歌、IE等浏览器拦截表单提交后的URL新窗口,思考了很久,终于找到了解决办法:

    以下内容转载自http://hezlh.blog.163.com/blog/static/1781091152013227101559654/

         一般情况下用  js  或  jquery  的  submit  方法提交  form  表单是不会被浏览器拦截的,但是发现异步的情况下用  js  提交  form  表单就会被浏览器拦截,这样就对功能的实现带来了很多的麻烦。网上看了好多都是同样的问题,解决办法都不是很理想,下面来详细分析下这个问题。 
           既然是在  ajax  中使用表单提交,肯定是需要  ajax  返回结果以后确定一个最终状态才能决定是否要提交表单。而ajax又是异步返回结果的,所以在返回结果后再决定提交表单,肯定会被浏览器拦截。
        那我们就想,jQuery   ajax   有没有同步的使用方法呢?答案是有的,在调用  ajax  时添加   async: false   这个参数即可。试了后发现,咦,真的可以!
        这个方法虽然是同步的,但是不违反这么使用的目的,如果  ajax  没有返回结果,当然也不能确定是否可以提交表单。在解决这个问题的时候,可能思路锁定在了  ajax  只能做异步的事,所以没有想到这样的解决办法。所以这个解决办法是有效的。

  • 相关阅读:
    Java:day11
    Java:day10
    Java:day9
    Java:day8
    纯虚函数和抽象类
    C++的虚拟继承
    派生类构造函数、析构函数的定义和调用次序
    c++的继承方式——公有、保护、私有
    操作系统中系统调用的执行过程
    C++的类
  • 原文地址:https://www.cnblogs.com/guoyu234/p/7080516.html
Copyright © 2011-2022 走看看