在前面寫過一篇文章,實現圖片的下載,前面都是基於別人來請求接口的方式,直接給用戶在頁面展示,或者下載到本地!現有一需求,要在管理平臺中實現下載,從頁面下載觸發下載按鈕進行下載,前端使用ligerUI框架,做整個前端頁面的渲染和朝向後臺的請求都是用ligerUI自身所帶!
先說不同的情況,假如我在地址欄直接請求後臺地址是可以實現的,如圖
地址欄直接請求後臺地址實現下載!
假如我在頁面觸發,按鈕,如圖
這個是和地址欄請求相同的後臺路徑,前端使用ligerUI實現
直接向後臺請求,這個時候抓取到的請求頭信息如何,
而在地址欄的請求頭信息如下,
對比發現,頁面請求方式是XMLHttpRequest的方式,假如頁面這時候使用ajax觸發後臺請求也是不能實現下載,請求方式如下
$.ajax({
type : "post",
url : ctx + "/org/downLoadCode",
processData : true,
data : {"orgId":orgId},
dataType : "json",
success : function(data) {
if (data) {
$.ligerDialog.alert("導出成功!", "提示", "success", function() {
});
} else {
$.ligerDialog.error("添加操作員失敗");
}
}
});
這時候ajax的方式也是不能下載,大家可以自行抓取請求頭比較,但是都不能下載我要如何解決呢?
還是從請求方式說起,這時候我模擬form表達的請求方式,再次抓取請求頭,這時候發現是這樣的請求頭信息,
這就是我要的要的方式了,成功下載我要的文件內容,至於如何實現form觸發,相信不是什麼問題了!