首頁 >web前端 >js教程 >ajax請求裡面呼叫window.open被攔截如何處理

ajax請求裡面呼叫window.open被攔截如何處理

php中世界最好的语言
php中世界最好的语言原創
2018-05-24 14:59:091848瀏覽

這次帶給大家ajax請求裡面呼叫window.open被攔截如何處理,處理ajax請求裡面呼叫window.open被攔截的注意事項有哪些,下面就是實戰案例,一起來看一下。

此方法優點描述:例如ajax回呼函數失敗,瀏覽器預設開啟的空連結會自動關閉,使用者體驗比較好。

 var newwin;
    $("#btn").click(function(){
        newwim = window.open();
        //此处调用ajax,异步即可:
        $.ajax({
            type:'POST',
            url: ajaxurl,       
            dataType : 'json',
            data:parameter,  
            beforeSend : function(){},
            success:function(data) {
                if(data.TSR_CODE == "0"){                
                       newwin.location.href = xxx;//xxx为后端返回的地址;            
                }else{
                    alert(data.TSR_MSG);
                    newwin.close();//此处为ajax失败方法,自动关闭刚才会打开的页面;
                }
            },
            error:function(){
                console.log("访问出错,请重试!");
            },
            complete:function(){}
        });
    });
  • 第二種解決方案分析:

#此方法測試過:例如後台傳回的是站外網址,Google瀏覽器、360瀏覽器等等會攔截請求,火狐、qq瀏覽器不會攔截,預測是瀏覽器本身對站外網址這種類型做了攔截,普通的網址不被攔截;

 $("#btn").click(function(){
        //此处调用ajax,异步即可:
        $.ajax({
            type:'POST',
            url: ajaxurl,       
            dataType : 'json',
            async:false,//改为同步请求
            data:parameter,  
            beforeSend : function(){},
            success:function(data) {
                if(data.TSR_CODE == "0"){                
                     window.open(xxx);               
                }else{
                    alert(data.TSR_MSG);                    
                }
            },
            error:function(){
                console.log("访问出错,请重试!");
            },
            complete:function(){}
        });

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

JS中的JSON與Math使用案例分析

##PromiseA 的實作步驟詳解


##

以上是ajax請求裡面呼叫window.open被攔截如何處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn