zoukankan      html  css  js  c++  java
  • ajax请求后弹开新页面被浏览器拦截

     window.open()可以实现除用a标签以外来实现打开新窗口!  最近本来好好的弹出窗口,结果被浏览器无情的给拦截了!

     方法一:

    $("#btn").on("click",function(){
        var goto = window.open();
        $.getJSON(URL,data,function(data,state){
            if(state=='success'){
                 goto.location.href = 'http://www.cnblogs.com/garfieldzhong/'
            }else{
                 alert('请求失败!');
            }
        })
    });
    弊端:那就是当异步请求失败了,也依然会有一个新窗口打开,因为它的原理很明显,是一开始打开一个空的新窗口,然后改变新窗口的url,以此来实现跳转。

       方法二:

    $("#btn").on("click",function(){
        $.ajaxSettings.async = false; //请求前设置为同步请求
        $.getJSON(URL,data,function(data,state){
            $.ajaxSettings.async = true;//切记,请求完成之后要设置回异步
            if(state=='success'){
                 goto.location.href = 'http://www.cnblogs.com/garfieldzhong/'
            }else{
                 alert('请求失败!');
            }
        })
    });
    关键词就是$.ajaxSettings.async,设置了ajax请求的方法,请求前为同步请求,这样就能避免被浏览器拦截,但是,不推荐使用同步方法,所以,当此次ajax/getjson完了之后要把值改回 true。
  • 相关阅读:
    net异步编程
    二维码的生成细节和原理
    4605 Magic Ball Game
    (Java实现) 子集和问题
    (Java实现) 组合的输出
    (Java实现) 自然数的拆分
    (Java实现) 装载问题
    (Java实现) 整数区间
    (Java实现) 最佳调度问题
    (Java实现) 最佳调度问题
  • 原文地址:https://www.cnblogs.com/guanguan-/p/6761760.html
Copyright © 2011-2022 走看看