• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Ajax请求成功后打开新窗口地址

    废话不多说,关键代码如下所示:

    jQuery.ajax({
    "type":"post",
    "url":"http://www.baidu.com", 
    "success":function(rel){
    if(rel.isSuccess){ 
    window.open(rel.url,"_blank");
    }
    }
    }); 

    这个url请求成功后window.open(rel.url,"_blank");会被浏览器拦截,无法打开新窗口,如果把window.open()放在ajax外面,问题就迎刃而解,代码如下:

    var result="";
    jQuery.ajax({
    "type":"post",
    "url":"http://www.baidu.com", 
    "success":function(rel){
    if(rel.isSuccess){ 
    result=rel.url;
    //window.open(rel.url,"_blank");
    }
    }
    });
    if(result.length>0){
    window.open(result,"_blank");
    }

    下面看下在Ajax响应之后打开新窗口

    最近的开发中有一个功能,点击一个链接之后,要判断当前的用户是否登录,没有登录的话,需要弹出一个登录对话框,用户登录之后,再在新的窗口(标签)中打开链接指向的Url。

    不多说,直接贴出代码:

    $(document).delegate("a", "click", function () { 
    var actionUrl = $(this).attr("href"); 
    var ssoAction = function () { window.open(actionUrl, '_blank'); }; 
    if (isLogin()) { 
    ssoAction(); 
    } else { 
    popup.show({login:function () { 
    $.ajax({ 
    type: "post", 
    dataType: "json", 
    url: "/Account/Login", 
    data: $("frmLogin").serialize(), 
    //发送方式改为同步,避免弹出页面被浏览器拦截
    async: false, 
    success: function (oData) { 
    ssoAction(); 
    } 
    }); 
    }); 
    } 
    return false; 
    });

    重点:需要使用同步提交,使用异步提交,callback里面打开新窗口(标签),会被浏览器认为是恶意行为。

    您可能感兴趣的文章:
    • Ajax请求响应中用window.open打开新窗口被拦截的解决方法
    • ajax怎么打开新窗口具体如何实现
    • Ajax打开新窗口被浏览器拦截的两种解决办法
    上一篇:甩掉ashx和asmx使用jQuery.ajaxWebService请求WebMethod简练处理Ajax
    下一篇:Ajax请求响应中用window.open打开新窗口被拦截的解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Ajax请求成功后打开新窗口地址 Ajax,请求,成功,后,打开,