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

首頁 > 開發 > AJAX > 正文

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

2024-09-01 08:28:38
字體:
來源:轉載
供稿:網友

問題:

前面開發項目時碰到一個問題,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 請求,至少博主測試了下仍然被瀏覽器所攔截。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英山县| 乌苏市| 于都县| 百色市| 兴仁县| 鄂尔多斯市| 天柱县| 灌阳县| 阿拉善盟| 萨嘎县| 泾源县| 安陆市| 泰安市| 阿拉善左旗| 利津县| 淮阳县| 原平市| 南投市| 樟树市| 连云港市| 佛学| 宜都市| 钟山县| 会宁县| 舞阳县| 同江市| 探索| 崇明县| 顺平县| 宁城县| 平武县| 东安县| 澜沧| 盈江县| 铅山县| 凤山市| 卢龙县| 永城市| 明光市| 邓州市| 河曲县|