首頁 >web前端 >js教程 >Ajax請求成功後開啟新視窗位址

Ajax請求成功後開啟新視窗位址

亚连
亚连原創
2018-05-23 15:45:462732瀏覽

這篇文章主要介紹了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方式上傳檔案使用FormData進行Ajax請求

############jQuery Ajax方式上傳檔案的方法###############利用ajax實作非同步刷新請求############################# ####

以上是Ajax請求成功後開啟新視窗位址的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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