Para aqueles que procuram uma abordagem mais moderna, você pode usar o fetch API
. O exemplo a seguir mostra como fazer download de um arquivo de planilha. Isso é feito facilmente com o código a seguir.
fetch(url, {
body: JSON.stringify(data),
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
})
.then(response => response.blob())
.then(response => {
const blob = new Blob([response], {type: 'application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = downloadUrl;
a.download = "file.xlsx";
document.body.appendChild(a);
a.click();
})
Acredito que essa abordagem seja muito mais fácil de entender do que outras XMLHttpRequest
soluções. Além disso, possui uma sintaxe semelhante à jQuery
abordagem, sem a necessidade de adicionar quaisquer bibliotecas adicionais.
Claro, eu aconselharia verificar para qual navegador você está desenvolvendo, já que essa nova abordagem não funcionará no IE. Você pode encontrar a lista completa de compatibilidade de navegadores no link a seguir .
Importante : neste exemplo, estou enviando uma solicitação JSON a um servidor que está escutando no dado url
. Isso url
deve ser definido, no meu exemplo, estou assumindo que você conhece esta parte. Além disso, considere os cabeçalhos necessários para que sua solicitação funcione. Como estou enviando um JSON, devo adicionar o Content-Type
cabeçalho e defini-lo application/json; charset=utf-8
como, para permitir que o servidor saiba o tipo de solicitação que receberá.