我需要從服務器下載文件。該文件存儲在數據庫中。我有一個cs控制器,將文件提供給UI。服務器獲取調用看起來是這樣的:下載文件在角環境
http://server/api/controllername/fileid/data
它的工作,當我運行在瀏覽器鏈接 - 文件下來,並進入下載區(鉻)。但是當我從我的Angualar代碼發送相同的命令時,我沒有看到任何文件。控制檯報告我的請求成功(代碼200),但我什麼也沒看到。請讓我知道要發佈哪些代碼片段,以便於幫助。
感謝
我需要從服務器下載文件。該文件存儲在數據庫中。我有一個cs控制器,將文件提供給UI。服務器獲取調用看起來是這樣的:下載文件在角環境
http://server/api/controllername/fileid/data
它的工作,當我運行在瀏覽器鏈接 - 文件下來,並進入下載區(鉻)。但是當我從我的Angualar代碼發送相同的命令時,我沒有看到任何文件。控制檯報告我的請求成功(代碼200),但我什麼也沒看到。請讓我知道要發佈哪些代碼片段,以便於幫助。
感謝
創建一個鏈接到資源,並且不使用Ajax處理。
如果您鏈接在新標籤中打開,該標籤將它實現後,這是剛剛打開下載在大多數現代瀏覽器文件自動關閉。
試試這個代碼:
var a = document.createElement('a');
a.href = "http://server/api/controllername/fileid/data";
a.click();
您可以撰寫地址串聯變量和文本。
爲什麼不簡單地使用'window.location ='http:// server/api/controllername/fileid/data''? –
我在創建XML文件的網頁中使用該代碼並讓它在本地保存。如果我使用你的建議,我的瀏覽器(鉻)顯示XML文件,當我使用我上面描述的那個時,它會自動下載文件。我不知道這是否會影響其他文件或MIME類型。 –
文件可能正確下載來調用它,但將是無用的用戶一個byte [] - 因爲是我的問題。
在我來說,我需要下載一個文件,一組複雜的參數。這個例子中的JavaScript使用一個post請求,並用你給它的任何JavaScript對象創建一個表單(並將其張貼)。此代碼可以幫助您解決簡化它:
private open(verb, url, data, target)
{
var form = document.createElement("form");
form.action = url;
form.method = verb;
form.target = target || "_self";
if (data) {
this.createFormParameters(form, "", data);
}
form.style.display = 'none';
document.body.appendChild(form);
form.submit();
}
private createFormParameters(form, key, value) {
// recursive algorithm to add parameters (including objects and arrays of objects) to a custom form
if (typeof value === "object") {
for (var item in value) {
if (Array.isArray(value[item])) {
for (var arrayItem in value[item]) {
this.createFormParameters(form, (item + "[" + arrayItem + "]."), value[item][arrayItem]);
}
continue;
}
var input = document.createElement("textarea");
input.name = key + item;
input.value = value[item];
form.appendChild(input);
}
}
else
{
var input = document.createElement("textarea");
input.name = key;
input.value = value;
form.appendChild(input);
}
}
不要請求以http,而不是要求它,如果你要離開的頁面訪問該網址,無論是在當前標籤頁或一個新標籤,甚至一個iframe。 –
如果你發送一個AJAX請求,你基本上是告訴瀏覽器:我想處理該請求的響應我想要的方式,用JavaScript代碼。爲什麼您發送AJAX請求而不是讓用戶點擊常規鏈接? –
它是什麼樣的數據? JSON,XML還是它的頁面片段(HTML)? – Chris