国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

ajax請求成功后新開窗口window.open()被攔截解決方法

2024-09-01 08:32:51
字體:
來源:轉載
供稿:網友
ajax 異步請求成功后需要新開窗口打開 url,使用的是 window.open() 方法,但是很可惜被瀏覽器給攔截了,怎么解決這個問題呢
 
 

問題:

前面開發項目時碰到一個問題,ajax 異步請求成功后需要新開窗口打開 url,使用的是 window.open() 方法,但是很可惜被瀏覽器給攔截了,怎么解決這個問題呢?
分析:

瀏覽器之所以攔截新開窗口是因為該操作并不是用戶主動觸發的,所以它認為這是不安全的就攔截了(不過如果是 _self 的話就不會有這個限制),即使 ajax 回調函數中模擬執行 click 或者 submit 等用戶行為(trigger('click')),瀏覽器也會認為不是由用戶主動觸發的,因此不能被安全執行,所以被攔截。
解決方法:

1、異步改為同步,即:async:false

2、將新開窗口指向為一個對象,然后修改對象的 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;}});});

最后需要說明的是:網上的動態添加 form 新開窗口的方法,并不適合 ajax 請求,至少博主測試了下仍然被瀏覽器所攔截。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 城口县| 新沂市| 临西县| 财经| 蕲春县| 定日县| 江陵县| 吐鲁番市| 彩票| 宁河县| 黎平县| 太仓市| 陆川县| 东乡| 九寨沟县| 青川县| 峡江县| 溆浦县| 本溪市| 靖边县| 霍山县| 永仁县| 阳城县| 旬邑县| 泰安市| 基隆市| 集贤县| 常熟市| 淮北市| 瑞金市| 衢州市| 资溪县| 融水| 酉阳| 龙海市| 河西区| 巫溪县| 二手房| 伊春市| 本溪市| 涿州市|