首頁 > web前端 > js教程 > 主體

Jquery Ajax請求檔案下載操作失敗的原因分析及解決辦法

亚连
發布: 2018-05-24 14:55:29
原創
2249 人瀏覽過

jQuery確實是個挺好的輕量級的JS框架,能幫助我們快速的開發JS應用,並且在一定程度上改變了我們寫JavaScript程式碼的習慣,本文重點介紹Jquery Ajax請求檔下載操作失敗的原因分析及解決辦法,對ajax請求失敗的原因分析感興趣的朋友一起學習把

jQuery確實是一個挺好的輕量級的JS框架,能幫助我們快速的開發JS應用,並且在某種程度上改變了我們寫JavaScript程式碼的習慣。

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

一、失敗的原因

那是因為response原因,一般請求瀏覽器是會處理伺服器輸出的response,例如產生png、文件下載等,然而ajax請求只是個「字元型」的請求,即請求的內容是以文字類型存放的。檔案的下載是以二進位形式進行的,雖然可以讀取到傳回的response,但只是讀取而已,是無法執行的,說白點就是js無法呼叫到瀏覽器的下載處理機制和程式。

二、解決方案

1)可以使用jquery建立表單並提交實作檔案下載;

var form = $("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action",rootPath + "T_academic_essay/DownloadZipFile.do");
var input1 = $("<input>");
input1.attr("type","hidden");
input1.attr("name","strZipPath");
input1.attr("value",strZipPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();
登入後複製

2)可以直接使用a標籤實現檔案下載;

點擊下載

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

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

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

$.ajax方法語法

 

$.ajax(options)

##參數

#options

(物件)一個物件的實例,其屬性定義這個操作的參數。詳情請見下表。

傳回值

#XHR實例

##############

options詳細範圍值

名稱

#類型

描述

url

#字串

請求的url位址

type

#字串

將要使用的HTTP方法。通常是POST或GET。如果省略,則預設為GET

data

物件

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

dataType

字串

#一個關鍵字,用來識別預期將被回應所傳回的資料的類型。這個值決定再把資料傳遞給回呼函數之前(如果有)進行什麼後續處理。有效值如下:

xml-回應文字被解析為XML文檔,而作為結果的XML DOM被傳遞給回調函數

html-回應文字未經處理就傳遞給回呼函數。在已傳回HTML片段內的任何

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!