आप content-type
प्रतिक्रिया के लिए जाँच कर सकते हैं , जैसा कि इस MDN उदाहरण में दिखाया गया है :
fetch(myRequest).then(response => {
const contentType = response.headers.get("content-type");
if (contentType && contentType.indexOf("application/json") !== -1) {
return response.json().then(data => {
// process your JSON data further
});
} else {
return response.text().then(text => {
// this is text, do something with it
});
}
});
यदि आपको यह सुनिश्चित करने की आवश्यकता है कि सामग्री मान्य JSON है (और हेडर पर भरोसा नहीं है), तो आप हमेशा केवल प्रतिक्रिया को स्वीकार कर सकते हैं text
और इसे स्वयं पार्स कर सकते हैं:
fetch(myRequest)
.then(response => response.text())
.then(text => {
try {
const data = JSON.parse(text);
// Do your JSON handling here
} catch(err) {
// It is text, do you text handling here
}
});
Async / इंतजार
यदि आप उपयोग कर रहे हैं async/await
, तो आप इसे और अधिक रैखिक फैशन में लिख सकते हैं:
async function myFetch(myRequest) {
try {
const reponse = await fetch(myRequest); // Fetch the resource
const text = await response.text(); // Parse it as text
const data = JSON.parse(text); // Try to parse it as json
// Do your JSON handling here
} catch(err) {
// This probably means your response is text, do you text handling here
}
}