ajax請(qǐng)求成功后新開(kāi)窗口window.open()被攔截解決方法
問(wèn)題:
前面開(kāi)發(fā)項(xiàng)目時(shí)碰到一個(gè)問(wèn)題,ajax 異步請(qǐng)求成功后需要新開(kāi)窗口打開(kāi) url,使用的是 window.open() 方法,但是很可惜被瀏覽器給攔截了,怎么解決這個(gè)問(wèn)題呢?
分析:
瀏覽器之所以攔截新開(kāi)窗口是因?yàn)樵摬僮鞑⒉皇怯脩?hù)主動(dòng)觸發(fā)的,所以它認(rèn)為這是不安全的就攔截了(不過(guò)如果是 _self 的話(huà)就不會(huì)有這個(gè)限制),即使 ajax 回調(diào)函數(shù)中模擬執(zhí)行 click 或者 submit 等用戶(hù)行為(trigger('click')),瀏覽器也會(huì)認(rèn)為不是由用戶(hù)主動(dòng)觸發(fā)的,因此不能被安全執(zhí)行,所以被攔截。
解決方法:
1、異步改為同步,即:async:false
2、將新開(kāi)窗口指向?yàn)橐粋€(gè)對(duì)象,然后修改對(duì)象的 url,比如:
$('.task').bind('click',function(){ var w = window.open(); $.ajax({ type: 'POST', url: '/surveyTask', dataType: 'json', error: function(){ w.close(); }, success: function(res){ w.location = res.url; } }); });
最后需要說(shuō)明的是:網(wǎng)上的動(dòng)態(tài)添加 form 新開(kāi)窗口的方法,并不適合 ajax 請(qǐng)求,至少博主測(cè)試了下仍然被瀏覽器所攔截。
- JS判斷鼠標(biāo)進(jìn)入容器的方向與window.open新窗口被攔截的問(wèn)題
- Ajax請(qǐng)求響應(yīng)中用window.open打開(kāi)新窗口被攔截的解決方法
- window.open不被攔截的簡(jiǎn)單實(shí)現(xiàn)代碼(推薦)
- window.open打開(kāi)窗口被攔截的快速解決方法
- js實(shí)現(xiàn)window.open不被攔截的解決方法匯總
- window.open關(guān)于瀏覽器攔截問(wèn)題分析及解決方法
- window.open不被攔截的實(shí)現(xiàn)代碼
- window.open被瀏覽器攔截后的自定義提示效果代碼
- 解決window.open()被瀏覽器攔截的問(wèn)題
相關(guān)文章
使用Ajax時(shí)處理用戶(hù)session失效問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了使用Ajax時(shí)處理用戶(hù)session失效問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作
這篇文章主要介紹了Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03詳解Ajax跨域(jsonp) 調(diào)用JAVA后臺(tái)
本篇文章主要介紹了詳解Ajax跨域(jsonp) 調(diào)用JAVA后臺(tái) ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05ajax 動(dòng)態(tài)傳遞jsp等頁(yè)面使用id辨識(shí)傳遞對(duì)象
本文為大家介紹下使用ajax動(dòng)態(tài)傳遞jsp等頁(yè)面,js的jax編寫(xiě),使用id辨識(shí)傳遞對(duì)象2014-01-01AJAX應(yīng)用實(shí)例之檢測(cè)用戶(hù)名是否唯一(實(shí)例代碼)
本文通過(guò)實(shí)例代碼給大家介紹了AJAX應(yīng)用實(shí)例之檢測(cè)用戶(hù)名是否唯一,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-09-09使用wordpress的$wpdb類(lèi)讀mysql數(shù)據(jù)庫(kù)做ajax時(shí)出現(xiàn)的問(wèn)題該如何解決
這篇文章主要介紹了使用wordpress的$wpdb類(lèi)讀mysql數(shù)據(jù)庫(kù)做ajax時(shí)出現(xiàn)的問(wèn)題該如何解決的相關(guān)資料,需要的朋友可以參考下2015-10-10Ajax請(qǐng)求內(nèi)嵌套Ajax請(qǐng)求示例代碼
把全國(guó)省市的兩個(gè)XML文件整合成一個(gè)JSON格式的數(shù)據(jù),就想到了用Ajax嵌套的方法來(lái)解決,查找資料,加個(gè)async:false這個(gè)Ajax參數(shù)就行了2014-08-08React+ajax+java實(shí)現(xiàn)上傳圖片并預(yù)覽功能
這篇文章主要介紹了React+ajax+java實(shí)現(xiàn)上傳圖片并預(yù)覽功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05