欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

jquery ajax download

在Web開(kāi)發(fā)中,通常會(huì)遇到需要將服務(wù)器端的數(shù)據(jù)以下載的方式提供給用戶的情況。而使用jQuery中的ajax()方法則可以簡(jiǎn)便地實(shí)現(xiàn)這一功能。

$.ajax({
method: "GET",
url: "example.php",
data: {fileId: "12345"},
xhrFields: {
responseType: 'blob'
},
success: function (data) {
var a = document.createElement('a');
var url = window.URL.createObjectURL(data);
a.href = url;
a.download = 'example.pdf';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
document.body.removeChild(a);
}
});

以上代碼中,通過(guò)設(shè)置xhrFields的responseType屬性為blob,我們可以獲取到服務(wù)器返回的二進(jìn)制數(shù)據(jù)。接著,我們創(chuàng)建一個(gè)a標(biāo)簽,為其設(shè)置下載鏈接和文件名,并將其添加到文檔中。之后,使用a.click()方法觸發(fā)下載,并在下載完成后回收URL資源和移除a標(biāo)簽。

需要注意的是,由于IE瀏覽器對(duì)blob對(duì)象的支持不完整,如果想要在IE中實(shí)現(xiàn)下載功能,需要另外處理。下面是針對(duì)IE的代碼:

$.ajax({
method: "GET",
url: "example.php",
data: {fileId: "12345"},
xhrFields: {
responseType: 'arraybuffer'
},
success: function (data) {
var blob;
if (typeof window.Blob === "function") {
blob = new Blob([data], {type: "application/pdf"});
} else {
var BlobBuilder = window.BlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder;
var bb = new BlobBuilder();
bb.append(data);
blob = bb.getBlob("application/pdf");
}
window.navigator.msSaveBlob(blob, 'example.pdf');
}
});

與前一段代碼類(lèi)似,我們通過(guò)設(shè)置xhrFields的responseType屬性為arraybuffer來(lái)獲取服務(wù)器返回的二進(jìn)制數(shù)據(jù)。之后,我們根據(jù)瀏覽器支持情況,使用Blob對(duì)象創(chuàng)建對(duì)應(yīng)類(lèi)型的二進(jìn)制數(shù)據(jù),并使用window.navigator.msSaveBlob()方法將數(shù)據(jù)保存為文件。