婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題

Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題

熱門標簽:老虎郵局地圖標注點 外呼系統獲取客戶手機號 上海浦東百度地圖標注中心注冊 科智聯智能電銷機器人 目標三維地圖標注 徐州電銷卡外呼系統供應商 百靈鳥 青海醫療智能外呼系統怎么樣 襄陽外呼系統接口

需求很簡單,點擊一個文件鏈接下載該文件,同時向后臺發送請求。需求很常見,用戶點擊下載后通常要進行下載量的統計,統計的話可以利用 script標簽 或者 img標簽(圖片ping) 的跨域能力,將它們的 src 屬性指向統計地址,但是這次用了 ajax 進行統計,遂出現了這個問題。

demo 代碼如下:

a id="a" href="http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.2 x64 Setup.exe" >click/a>
script src="jQuery.js">/script>
script>
document.getElementById("a").onclick = function(e) {
$.post("data.php");
};
/script>

我們都知道,如果一個 a 標簽同時擁有 onclick 事件和 href 屬性,onclick 事件的回調會在默認事件(即跳轉)之前執行,這也正是可以在 onclick 事件中用類似 e.preventDefault() 的代碼去除默認事件(即跳轉)的原因。所以以上代碼,如果點擊 a 標簽,首先會執行 onclick 事件的回調,即發送 ajax 請求,理論上,因為代碼中的 ajax 是異步的(其實同步也一樣),所以會一邊請求一邊打開下載文件。

chrome、UC、opera、2345瀏覽器中表現均和預期一致,firefox 下點擊能跳出下載文件,但是 ajax 部分報錯,IE 下未測試。

一開始的錯誤想法是,跨域導致報錯。當點擊下載鏈接時,ajax 請求會以為頁面即將跳到 href 所指的地址,導致瀏覽器以為該 ajax 跨域。該錯誤想法很快被推翻,一是因為先進行 ajax 請求,所以請求瞬間并未跨域;二是并未報跨域錯誤(通常如果是跨域錯誤控制臺會指出);三是如下代碼更進一步證明了該錯誤。

a id="a" href="http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.2 x64 Setup.exe" >click/a>
script src="jQuery.js">/script>
script>
$.post("data.php"); // data.php sleep(100)
/script>

打開該頁面,隨即進行 ajax 請求,一旦點擊了下載按鈕,請求即被中止。如果 a 標簽的 href 屬性值不是文件地址,而是用任意的一個 url 替換,如果點擊 a 標簽,頁面會立即跳轉到該標簽所指向的地址,頁面都不存在了,ajax 自然也就中斷了。如果 a 標簽指向的是文件地址,在 ff 下是不是也會被一樣地解析呢(瀏覽器以為要跳到該地址了,而將 ajax 中止)?

答案是肯定的,我在 stackoverflow 中找到了答案。

When clicking the download link you are leaving the page, even it does not look so. If there would no file transfer, you would see the requested page.. try to set a target="_blank" or use an iframe as target for the link.

從提問可以看出,2010 年時 chrome 和 ff 都有類似的問題,而 chrome 或者說是 webkit 內核的瀏覽器在之后的版本迭代中修復了這個問題, ff 則一直將問題留到了現在(個人認為這不太合理)。

知道了問題的根源,解決方案也就呼之欲出了。

方法一:

最簡單的方法無非是給 a 標簽加上 target="_blank",事實上,通常網頁都是這么做的,這也是值得肯定的做法。

方法二:

既然 a 標簽的默認行為會使得 ajax 請求中斷,那么將 "默認行為" 放在請求之前呢?

a id="a" href="javascript:;" >click/a>
script src="jQuery.js">/script>
script>
document.getElementById("a").onclick = function(e) {
location.href = "http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.2 x64 Setup.exe";
$.post("data.php");
};
/script>

方法三:

設置定時器使請求延遲,但是因為 a 標簽的默認跳轉不屬于 Javascript 線程能控制的范圍,所以這個延遲閾值的設置非常重要,我本地測試結果居然是 2ms(也是萬萬沒想到),一般設置為 100ms 左右就 ok 了。 這個方法不優雅,不應該使用 。

a id="a" href="http://c758482.r82.cf2.rackcdn.com/Sublime Text 2.0.2 x64 Setup.exe" >click/a>
script src="jQuery.js">/script>
script>
document.getElementById("a").onclick = function(e) {
setTimeout(function() {
$.post("data.php");
}, 100);
};
/script>

以上內容給大家介紹了Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題,希望對大家今后的工作學習有所幫助。

您可能感興趣的文章:
  • JavaScript讀二進制文件并用ajax傳輸二進制流的方法
  • 解決IE下AjaxSubmit上傳文件提示下載文件問題
  • Ajax請求二進制流進行處理(ajax異步下載文件)的簡單方法

標簽:佛山 荊州 辛集 紅河 股票 咸寧 揭陽 商洛

巨人網絡通訊聲明:本文標題《Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題》,本文關鍵詞  Ajax,請求,過程中,下載,文件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題》相關的同類信息!
  • 本頁收集關于Ajax請求過程中下載文件在FireFox(火狐)瀏覽器下的兼容問題的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美无砖砖区免费| 麻豆精品在线视频| 无吗不卡中文字幕| 国产麻豆日韩欧美久久| 色网综合在线观看| 久久久久久久综合日本| 首页国产欧美久久| 欧美最猛黑人xxxxx猛交| 中文字幕中文字幕一区二区| 看电视剧不卡顿的网站| 欧美天天综合网| 亚洲一区二区视频在线| av在线综合网| 欧美国产日韩a欧美在线观看| 亚洲成在线观看| 欧美一级免费大片| 国精品**一区二区三区在线蜜桃| 久久免费视频一区| 在线视频你懂得一区| 香蕉成人啪国产精品视频综合网| 久久久久9999亚洲精品| 欧美亚洲愉拍一区二区| 国产福利精品一区二区| 亚洲国产精品一区二区www | 一本色道久久综合亚洲精品按摩| 国产午夜精品久久久久久免费视 | 国产目拍亚洲精品99久久精品 | 亚洲精品国产精华液| 欧美日韩在线观看一区二区| **欧美大码日韩| 欧美高清性hdvideosex| 国产精品夜夜爽| 亚洲欧美精品午睡沙发| 亚洲成在人线免费| 欧美日韩黄色影视| 18欧美亚洲精品| 精品亚洲国内自在自线福利| 欧美亚洲国产一区二区三区| 国产片一区二区| 成人不卡免费av| 亚洲美女偷拍久久| 韩国成人精品a∨在线观看| 欧亚一区二区三区| 一区二区三区四区不卡在线| 99久久综合国产精品| 中文子幕无线码一区tr| 成人精品视频一区| 国产精品理论片| 欧美专区日韩专区| 日韩精品电影在线| 国产三级精品视频| 91网站在线观看视频| 午夜精品福利视频网站| 日韩精品一区二区在线观看| 久久精品久久99精品久久| 日韩你懂的电影在线观看| 秋霞影院一区二区| 国产女人18毛片水真多成人如厕 | 91豆麻精品91久久久久久| 亚洲视频免费观看| 欧美tickle裸体挠脚心vk| 成人app在线观看| 婷婷中文字幕一区三区| 国产亚洲一区字幕| 欧美三级在线播放| 高清不卡一区二区在线| 一区二区三区鲁丝不卡| 亚洲精品在线免费观看视频| 在线亚洲人成电影网站色www| 久久se精品一区二区| 亚洲福利国产精品| 国产精品欧美精品| 欧美不卡一区二区| 精品视频在线视频| 精品久久久久久久一区二区蜜臀| 在线观看成人免费视频| 成人天堂资源www在线| 免费久久99精品国产| 国产精品入口麻豆原神| 国产精品免费视频一区| 亚洲国产精品精华液2区45| 日韩精品一区二区在线| 91精品国产综合久久蜜臀 | 在线观看欧美精品| 色婷婷精品大视频在线蜜桃视频| 91老师片黄在线观看| 风间由美性色一区二区三区| 国产91丝袜在线播放0| 99这里只有精品| av一区二区三区在线| 色狠狠综合天天综合综合| 日本韩国一区二区| 欧美日韩视频第一区| 日韩女优毛片在线| 欧美国产精品一区二区三区| 亚洲欧洲日韩av| 亚洲欧美日韩在线不卡| 午夜亚洲国产au精品一区二区| 亚洲综合激情另类小说区| 午夜精品久久一牛影视| 成人自拍视频在线| 欧美日韩国产在线观看| 欧美精品一区二区在线观看| 亚洲精品国产无天堂网2021| 久久精品国产网站| 99久久精品情趣| 日韩精品一区二区三区在线播放 | 午夜精品久久久久久久99水蜜桃| 久久99久久99精品免视看婷婷| 成人99免费视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品亚洲porn| 欧美视频一区在线| 亚洲欧美国产三级| 国产不卡在线一区| 久久亚洲精华国产精华液 | 午夜视频在线观看一区| 欧美日韩国产综合视频在线观看| 日韩一区欧美小说| 成人丝袜视频网| 国产日产欧美一区| 国产久卡久卡久卡久卡视频精品| 日韩午夜激情av| 美女精品一区二区| 欧美日韩一区高清| 亚洲成人免费电影| 欧美一级黄色片| 日韩福利视频导航| 欧美一区二区在线观看| 久久99精品久久久久婷婷| 欧美成人福利视频| 国产成人在线影院| 亚洲另类在线一区| 日韩欧美专区在线| 国产一区二区三区观看| 国产精品福利在线播放| 欧美亚洲一区二区三区四区| 奇米四色…亚洲| 国产精品嫩草99a| 91成人网在线| 激情偷乱视频一区二区三区| 中文字幕久久午夜不卡| 欧美在线视频日韩| 国产福利电影一区二区三区| 亚洲国产精品人人做人人爽| 久久午夜电影网| 欧美性一区二区| 久久99国产乱子伦精品免费| 亚洲乱码精品一二三四区日韩在线| 日韩一区二区高清| 在线观看免费一区| www.爱久久.com| 国产毛片精品国产一区二区三区| 午夜免费欧美电影| 亚洲地区一二三色| 亚洲国产一区视频| 一区二区三区在线播放| 日韩av成人高清| 亚洲免费大片在线观看| 亚洲欧美日韩国产综合在线| 久久一日本道色综合| 精品精品国产高清一毛片一天堂| 91精品综合久久久久久| 欧美精品在欧美一区二区少妇| 欧洲av在线精品| 91福利资源站| 欧美日韩在线一区二区| 欧美一区二区三区四区久久| 51精品视频一区二区三区| 欧美精品在线视频| 精品久久国产老人久久综合| 欧美成人高清电影在线| 久久久久久久久久久99999| 亚洲国产激情av| 亚洲精品国产第一综合99久久 | 欧美日韩一卡二卡三卡| 日韩一区二区三区精品视频| 国产清纯美女被跳蛋高潮一区二区久久w| 久久久久久久综合日本| 国产精品国产三级国产a| 天天综合天天综合色| 国产一区二区日韩精品| 欧美视频一区二区在线观看| 欧美va亚洲va| 亚洲亚洲人成综合网络| 成人免费视频免费观看| 欧美乱妇15p| 国产精品白丝在线| 美女mm1313爽爽久久久蜜臀| 国产成人激情av| 日韩精品一区二区三区老鸭窝| 亚洲激情综合网| 成人自拍视频在线观看| 91精品国产高清一区二区三区蜜臀| 国产欧美视频一区二区| 久久国产三级精品| 欧美日韩一区二区三区免费看| 一区二区三区丝袜| av亚洲精华国产精华精| 国产色爱av资源综合区|