最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

JqueryAjax請求文件下載操作失敗的原因分析及解決辦法

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:46:59
文檔

JqueryAjax請求文件下載操作失敗的原因分析及解決辦法

JqueryAjax請求文件下載操作失敗的原因分析及解決辦法:jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發(fā)JS應(yīng)用,并在一定程度上改變了我們寫JavaScript代碼的習(xí)慣,本文重點給大家介紹Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法,對ajax請求失敗的原因分析感興趣的朋友一起學(xué)習(xí)把jQue
推薦度:
導(dǎo)讀JqueryAjax請求文件下載操作失敗的原因分析及解決辦法:jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發(fā)JS應(yīng)用,并在一定程度上改變了我們寫JavaScript代碼的習(xí)慣,本文重點給大家介紹Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法,對ajax請求失敗的原因分析感興趣的朋友一起學(xué)習(xí)把jQue
jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發(fā)JS應(yīng)用,并在一定程度上改變了我們寫JavaScript代碼的習(xí)慣,本文重點給大家介紹Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法,對ajax請求失敗的原因分析感興趣的朋友一起學(xué)習(xí)把

jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發(fā)JS應(yīng)用,并在一定程度上改變了我們寫JavaScript代碼的習(xí)慣。

廢話少說,直接進(jìn)入正題,我們先來分析一下失敗的原因

一、失敗的原因

那是因為response原因,一般請求瀏覽器是會處理服務(wù)器輸出的response,例如生成png、文件下載等,然而ajax請求只是個“字符型”的請求,即請求的內(nèi)容是以文本類型存放的。文件的下載是以二進(jìn)制形式進(jìn)行的,雖然可以讀取到返回的response,但只是讀取而已,是無法執(zhí)行的,說白點就是js無法調(diào)用到瀏覽器的下載處理機制和程序。

二、解決方案

1)可以使用jquery創(chuàng)建表單并提交實現(xiàn)文件下載;

2)可以直接使用a標(biāo)簽實現(xiàn)文件下載;

<a href=”下載地址”>點擊下載</a>

3)使用隱藏iframe或新窗體解決。

PS:AJAX請求 $.ajax方法的使用

使用jQuery的$.ajax方法可以更為詳細(xì)的控制AJAX請求。它在AJAX請求上施加細(xì)粒度級別的控制。

$.ajax方法語法

$.ajax(options)

參數(shù)

options

(對象)一個對象的實例,其屬性定義這個操作的參數(shù)。詳情見下表。

返回值

XHR實例

options詳細(xì)范圍值

名稱

類型

描述

url

字符串

請求的url地址

type

字符串

將要使用的HTTP方法。通常是POST或GET。如果省略,則默認(rèn)為GET

data

對象

一個對象,其屬性作為查詢參數(shù)而傳遞請求。如果是GET請求,則把數(shù)據(jù)作為查詢字符串傳遞;如果是POST請求,則把數(shù)據(jù)作為請求體傳遞。在這兩種情況下,都是由$.ajax()實用工具函數(shù)來處理值的編碼

dataType

字符串

一個關(guān)鍵字,用來標(biāo)識預(yù)期將被響應(yīng)所返回的數(shù)據(jù)的類型。這個值決定再把數(shù)據(jù)傳遞給回調(diào)函數(shù)之前(如果有)進(jìn)行什么后續(xù)處理。有效值如下:

xml-響應(yīng)文本被解析為XML文檔,而作為結(jié)果的XML DOM被傳遞給回調(diào)函數(shù)

html-響應(yīng)文本未經(jīng)處理就被傳遞給回調(diào)函數(shù)。在已返回HTML片段內(nèi)的任何<script>塊將被求值

json-響應(yīng)文本被求值為JSON字符串,而作為結(jié)果的對象被傳遞給回調(diào)函數(shù)

jsonp-與json相似,不同之處是提供遠(yuǎn)程腳本支持(假定遠(yuǎn)程服務(wù)器支持)

script-響應(yīng)文本被傳遞給回調(diào)函數(shù)。在任何回調(diào)函數(shù)被調(diào)用之前,響應(yīng)被作為一個或多個JavaScript語句而進(jìn)行處理

text-響應(yīng)文本被假定為普通文本。服務(wù)器資源負(fù)責(zé)設(shè)置適當(dāng)?shù)膬?nèi)容類型響應(yīng)標(biāo)頭。如果省略這個屬性,則不對響應(yīng)文本進(jìn)行任何處理或求值就傳遞給回調(diào)函數(shù)

timeout

數(shù)值

設(shè)置Ajax請求的超時值(毫秒)。如果請求在超時值到期之前仍未完成,則中止請求并且調(diào)用錯誤回調(diào)函數(shù)(如果已定義)

global

布爾型

啟用或禁用全局函數(shù)的觸發(fā)。這些函數(shù)可以附加到元素上,并且在Ajax調(diào)用的不同時刻或狀態(tài)下觸發(fā)。默認(rèn)啟用全局函數(shù)觸發(fā)

contentType

字符串

將要在請求上指定的內(nèi)容類型。默認(rèn)為application/x-www-form-urlencoded(與表單提交所使用的默認(rèn)類型相同)

success

函數(shù)

如果請求的響應(yīng)指示成功狀態(tài)碼,則這個函數(shù)被調(diào)用。響應(yīng)體作為第一個參數(shù)被返回給這個函數(shù),并且根據(jù)指定的dataType屬性進(jìn)行。第二個參數(shù)是包含狀態(tài)碼的字符串—這種情況下永遠(yuǎn)為成功狀態(tài)碼

error

函數(shù)

如果請求的響應(yīng)返回錯誤狀態(tài)碼,則這個函數(shù)被調(diào)用。三個實參被傳遞給這個函數(shù):XHR實例、狀態(tài)消息字符串(在這種情況下永遠(yuǎn)為錯誤狀態(tài)碼)以及XHR實例所返回的異常對象(可選)

complete

函數(shù)

請求完成時被調(diào)用。兩個實參被傳遞:XHR實例和狀態(tài)消息字符串(成功狀態(tài)碼或錯誤狀態(tài)碼)。如果也指定了success或error回調(diào)函數(shù),則這個函數(shù)在success或error回調(diào)函數(shù)調(diào)用之后被調(diào)用

beforeSend

函數(shù)

在發(fā)起請求之前被調(diào)用。這個函數(shù)被傳遞XHR實例,并且可以用來設(shè)置自定義的標(biāo)頭或執(zhí)行其他預(yù)請求操作

async

布爾型

如果指定為false,則請求被提交為同步請求。在默認(rèn)的情況下,請求是異步的

processData

布爾型

如果設(shè)置為false,則阻止已傳遞數(shù)據(jù)被加工為URL編碼格式。默認(rèn)情況下,數(shù)據(jù)被加工為URL編碼格式(適用于類型為application/x-www-form-urlencoded的請求)

ifModified

布爾型

如果設(shè)置為true,則自從上一次請求以來,只有在響應(yīng)內(nèi)容沒有改變的情況下(根據(jù)Last-Modified標(biāo)頭)才允許請求成功。如果省略,則不執(zhí)行標(biāo)頭檢查

下面看個例子,盡可能多的用到options中的選項

客戶端代碼:

服務(wù)端主要代碼:

運行程序,結(jié)果如圖:

上面是我整理給大家的,希望今后會對大家有幫助。

相關(guān)文章:

jquery1.8版本使用ajax實現(xiàn)微信調(diào)用出現(xiàn)的問題分析及解決辦法

基于h5的history改善ajax列表請求體驗

簡單談?wù)凙JAX核心對象

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JqueryAjax請求文件下載操作失敗的原因分析及解決辦法

JqueryAjax請求文件下載操作失敗的原因分析及解決辦法:jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發(fā)JS應(yīng)用,并在一定程度上改變了我們寫JavaScript代碼的習(xí)慣,本文重點給大家介紹Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法,對ajax請求失敗的原因分析感興趣的朋友一起學(xué)習(xí)把jQue
推薦度:
標(biāo)簽: 文件下載 請求 下載文件
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top