這次帶給大家Jquery Ajax請求文件下載操作失敗怎麼處理,處理Jquery Ajax請求文件下載操作失敗的注意事項有哪些,下面就是實戰案例,一起來看一下。
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片段內的任何 作者最新文章
最新問題
使用 Javascript / Jquery 提交表單且不含按鈕
我試圖透過呼叫JavaScript函數並使用JQUERY/PHP執行表單來提交沒有按鈕的表單。我希望表單在後端靜默執行,而無需重新載入頁面。不幸的是,它不斷傳回JavaScript...
來自於 2024-04-06 14:54:03
0
2
421
如何使用 jquery 檢索 HTML 資料表中未選定行的值
我試圖獲取所有未單擊按鈕的行的值。例如,當我單擊第一行上的按鈕時,我想檢索沒有單擊的行的值。 vartable=document.getElementById("all_...
來自於 2024-04-05 09:26:49
0
1
1418
需要一個 jquery 腳本,根據最終用戶的當前選擇從選擇框中移動選定的選項
我有一個HTML頁面,最終用戶可以透過選擇框元素對我們的項目進行排名。請參閱小提琴來觀看簡單的演示:https://jsfiddle.net/Balkanlii/ghecv1j8/...
來自於 2024-04-04 18:40:04
0
1
3528
我已經透過書籤在純 CSS 中創建了一個元素。它已創建,但不可見
我的程式碼如下:g=document.createElement('div');g.setAttribute("id","divcontainer&q...
來自於 2024-04-04 17:27:27
0
1
417
在 Safari/Firefox iOS 上無法傳送表單數據
這適用於除iOS上的Safari/Firefox之外的所有平台:jQuery("#gform_1").one('submit',function(event){...
來自於 2024-04-04 12:53:48
0
1
303
相關專題
更多>
熱門教學
更多>
|