国产探花免费观看_亚洲丰满少妇自慰呻吟_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 請求,至少博主測試了下仍然被瀏覽器所攔截。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郧西县| 临邑县| 浦江县| 哈密市| 巨野县| 房产| 邵东县| 镇江市| 镇平县| 恭城| 宁晋县| 车致| 文水县| 深泽县| 阜城县| 孝感市| 稻城县| 石首市| 紫金县| 肇东市| 昌都县| 仙游县| 南和县| 依兰县| 阳新县| 上思县| 阿拉善右旗| 平凉市| 大邑县| 清苑县| 专栏| 阜平县| 库尔勒市| 香港 | 北票市| 桃园市| 珠海市| 龙川县| 龙川县| 花垣县| 康马县|