Daha modern bir yaklaşım arayanlar için fetch API
. Aşağıdaki örnek, bir elektronik tablo dosyasının nasıl indirileceğini gösterir. Aşağıdaki kod ile kolaylıkla yapılır.
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();
})
Bu yaklaşımın diğer XMLHttpRequest
çözümlerden çok daha kolay anlaşılacağına inanıyorum . Ayrıca, jQuery
herhangi bir ek kitaplık eklemeye gerek kalmadan yaklaşıma benzer bir sözdizimi vardır .
Elbette, hangi tarayıcıyı geliştirdiğinizi kontrol etmenizi tavsiye ederim, çünkü bu yeni yaklaşım IE'de çalışmayacaktır. Tam tarayıcı uyumluluk listesini aşağıdaki bağlantıda bulabilirsiniz .
Önemli : Bu örnekte, verileni dinleyen bir sunucuya JSON isteği gönderiyorum url
. Bu url
ayarlanmalıdır, örneğimde bu bölümü bildiğinizi varsayıyorum. Ayrıca, isteğinizin çalışması için gereken başlıkları da göz önünde bulundurun. Bir JSON gönderdiğim için, Content-Type
başlığı eklemeli ve şu şekilde ayarlamalıyım:application/json; charset=utf-8
, sunucunun alacağı istek türünü bilmesini sağlamak .