這次帶給大家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中文網其它相關文章!
推薦閱讀:
##
以上是ajax請求裡面呼叫window.open被攔截如何處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!