改一個頁面:js新開啟一個頁面,頁面的地址為一個get請求介面,由於傳遞的字串變多,要改為post請求。
沒辦法使用js開啟新視窗這種了,考慮ajax請求。寫個demo記錄下
<script>
function downloadFile(url, data) {
$.ajax({
url: url,
type: "POST",
cache: false,
data: data,
xhrFields: {
responseType: "blob", // 設定響應型別為二進位制流
},
beforeSend: function () {},
success: function (response, status, xhr) {
const blob = new Blob([response], {
type: xhr.getResponseHeader("Content-Type"),
});
const link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
link.download = "test.xlsx";
link.click();
},
complete: function (data) {},
error: function (err) {},
});
}
</script>