नए तरीके I: fetch
TL, डॉ। मैं इस तरह से अनुशंसा करता हूँ जब तक आपको तुल्यकालिक अनुरोध भेजने या पुराने ब्राउज़र का समर्थन करने की आवश्यकता नहीं है।
जब तक आपका अनुरोध अतुल्यकालिक है आप HTTP अनुरोध भेजने के लिए Fetch API का उपयोग कर सकते हैं । भ्रूण एपीआई वादों के साथ काम करता है , जो जावास्क्रिप्ट में अतुल्यकालिक वर्कफ़्लोज़ को संभालने का एक अच्छा तरीका है। इस दृष्टिकोण के साथ आप fetch()
अनुरोध भेजने और ResponseBody.json()
प्रतिक्रिया को पार्स करने के लिए उपयोग करते हैं:
fetch(url)
.then(function(response) {
return response.json();
})
.then(function(jsonResponse) {
// do something with jsonResponse
});
संगतता: Fetch API IE11 के साथ-साथ एज 12 और 13. द्वारा समर्थित नहीं है, हालांकि, पॉलीफिल हैं ।
नए तरीके II: responseType
जैसा कि लोन्डरेन ने अपने उत्तर में लिखा है , नए ब्राउज़र आपको responseType
प्रतिक्रिया के अपेक्षित प्रारूप को परिभाषित करने के लिए संपत्ति का उपयोग करने की अनुमति देते हैं । पार्स किए गए प्रतिक्रिया डेटा को तब response
संपत्ति के माध्यम से एक्सेस किया जा सकता है :
var req = new XMLHttpRequest();
req.responseType = 'json';
req.open('GET', url, true);
req.onload = function() {
var jsonResponse = req.response;
// do something with jsonResponse
};
req.send(null);
संगतता: responseType = 'json'
IE11 द्वारा समर्थित नहीं है।
क्लासिक तरीका है
मानक XMLHttpRequest के पास कोई responseJSON
संपत्ति नहीं है, बस responseText
और responseXML
। जब तक बिट्स वास्तव में आपके अनुरोध पर कुछ JSON के साथ प्रतिक्रिया करता है, responseText
तब तक JSON कोड पाठ के रूप में होना चाहिए, इसलिए आपको इसे करने के लिए पार्स करना होगा JSON.parse()
:
var req = new XMLHttpRequest();
req.overrideMimeType("application/json");
req.open('GET', url, true);
req.onload = function() {
var jsonResponse = JSON.parse(req.responseText);
// do something with jsonResponse
};
req.send(null);
संगतता: यह दृष्टिकोण किसी भी ब्राउज़र के साथ काम करना चाहिए जो समर्थन करता है XMLHttpRequest
और JSON
।
JSONHttpRequest
यदि आप उपयोग करना पसंद करते हैं responseJSON
, लेकिन JQuery की तुलना में अधिक हल्का समाधान चाहते हैं, तो आप मेरे JSONHttpRequest की जांच कर सकते हैं। यह बिल्कुल सामान्य XMLHttpRequest की तरह काम करता है, लेकिन यह responseJSON
संपत्ति भी प्रदान करता है। आपको अपने कोड में परिवर्तन करना होगा पहली पंक्ति होगी:
var req = new JSONHttpRequest();
JSONHttpRequest जावास्क्रिप्ट को JSON के रूप में आसानी से भेजने के लिए कार्यक्षमता प्रदान करता है। अधिक विवरण और कोड यहां पाया जा सकता है: http://pixelsvsbytes.com/2011/12/teach-your-xmlhttprequest-some-json/ ।
पूर्ण प्रकटीकरण: मैं पिक्सेल का मालिक हूँ | बाइट्स। मुझे लगता है कि मेरी स्क्रिप्ट समस्या का एक अच्छा समाधान है, इसलिए मैंने इसे यहां पोस्ट किया। कृपया एक टिप्पणी छोड़ दें, यदि आप चाहते हैं कि मैं लिंक को हटा दूं।
XMLHttpRequest
; बस क्या सवाल था।