Yeni yöntemler: fetch
TL; DR Eşzamanlı istekler göndermeniz veya eski tarayıcıları desteklemeniz gerekmediği sürece bu yolu öneririm.
İsteğiniz eşzamansız olduğu sürece, HTTP istekleri göndermek için Getirme API'sını kullanabilirsiniz. Getirme API'si , JavaScript'te eşzamansız iş akışlarını yönetmenin güzel bir yolu olan vaatlerle çalışır . Bu yaklaşımla, fetch()bir istek göndermek ve ResponseBody.json()yanıtı ayrıştırmak için kullanırsınız:
fetch(url)
.then(function(response) {
return response.json();
})
.then(function(jsonResponse) {
});
Uyumluluk: Getir API IE11 gibi Kenar 12 ve 13. Bununla beraber, orada tarafından desteklenmeyen polyfills .
Yeni yollar II: responseType
As Londeren yazılmış olan onun cevabı , yeni tarayıcıları kullanmasına izin responseTypeyanıtın beklendiği biçimini tanımlamak için özellik. Ayrıştırılan yanıt verilerine daha sonra responseözellik aracılığıyla erişilebilir :
var req = new XMLHttpRequest();
req.responseType = 'json';
req.open('GET', url, true);
req.onload = function() {
var jsonResponse = req.response;
};
req.send(null);
Uyumluluk: responseType = 'json'IE11 tarafından desteklenmez.
Klasik yol
Standart XMLHttpRequest'in özelliği yoktur responseJSON, sadece responseTextve responseXML. İsteğinize biraz JSON ile gerçekten yanıt verdiği sürece responseText, JSON kodunu metin olarak içermelidir, bu nedenle tek yapmanız gereken onu şu şekilde ayrıştırmaktır JSON.parse():
var req = new XMLHttpRequest();
req.overrideMimeType("application/json");
req.open('GET', url, true);
req.onload = function() {
var jsonResponse = JSON.parse(req.responseText);
};
req.send(null);
Uyumluluk: Bu yaklaşım, XMLHttpRequestve destekleyen herhangi bir tarayıcıyla çalışmalıdır JSON.
JSONHttpRequest
responseJSONKullanmayı tercih ediyor , ancak JQuery'den daha hafif bir çözüm istiyorsanız, JSONHttpRequest'ime göz atmak isteyebilirsiniz. Tam olarak normal bir XMLHttpRequest gibi çalışır, ancak responseJSONözelliği de sağlar . Kodunuzda değiştirmeniz gereken tek şey ilk satır olacaktır:
var req = new JSONHttpRequest();
JSONHttpRequest ayrıca JavaScript nesnelerini JSON olarak kolayca göndermek için işlevsellik sağlar. Daha fazla ayrıntı ve kod burada bulunabilir: http://pixelsvsbytes.com/2011/12/teach-your-xmlhttprequest-some-json/ .
Tam açıklama: Pixels | Bytes'ın sahibiyim. Senaryomun soruna iyi bir çözüm olduğunu düşünüyorum, bu yüzden buraya gönderdim. Bağlantıyı kaldırmamı istiyorsanız lütfen bir yorum bırakın.
XMLHttpRequest; tam olarak sorunun ne hakkındaydı.