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 responseType
yanı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 responseText
ve 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, XMLHttpRequest
ve destekleyen herhangi bir tarayıcıyla çalışmalıdır JSON
.
JSONHttpRequest
responseJSON
Kullanmayı 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ı.