我有下面的代碼來下載一個.csv文件:使用jQuery和iframe來下載文件
$.ajax({
url: urlString,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function (data) {
if (data) {
var iframe = $("<iframe/>").attr({
src: data,
style: "visibility:hidden;display:none"
}).appendTo(buttonToDownloadFile);
} else {
alert('Something went wrong');
}
}
});
的urlString指向生成.csv文件,並返回文件路徑一個RESTful服務,被分配給iFrame的src屬性。這適用於任何.csv文件,但我在使用.xml文件時遇到問題。當我使用相同的代碼,但將contentType更改爲「text/xml」並將其用於下載.xml文件時,這不起作用。
我可以在這裏使用相同的方法爲.xml文件?
UPDATE:
感謝奔指着我正確的方向。事實證明,我根本不需要ajax電話。相反,我可以使用iFrame及其url屬性來調用Web服務,該服務將生成內容,添加標題(Content-Disposition
)並返回流。
恐怕我不太瞭解工作 - 你提出的建議。我的服務器是.NET(WCF)。你是說我應該從服務器端添加標題嗎? – notlkk
是的。如果您不控制RESTful API,那麼您無法使用HTML/JS設置標題。所以你要做的是在.NET服務器上創建一個腳本,它可以接收遠程URL作爲參數,獲取遠程文件,用新標題重新打包,然後作爲附件提供。 –
我明白了。你需要指出所有4個標題嗎?我應該在我的JavaScript中使用哪些內容類型? – notlkk