मैं एक/redux आवेदन प्रतिक्रिया और मैं एक Sever के लिए एक सरल GET अनुरोध करने के लिए कोशिश कर रहा हूँ है देता है:लाने प्रतिक्रिया एक खाली प्रतिक्रिया शरीर
fetch('http://example.com/api/node', {
mode: "no-cors",
method: "GET",
headers: {
"Accept": "application/json"
}
}).then((response) => {
console.log(response.body); // null
return dispatch({
type: "GET_CALL",
response: response
});
})
.catch(error => { console.log('request failed', error); });
समस्या यह है कि प्रतिक्रिया शरीर में खाली है .then()
फ़ंक्शन और मुझे यकीन नहीं है कि क्यों। मैंने ऑनलाइन उदाहरणों की जांच की और ऐसा लगता है कि मेरे कोड को काम करना चाहिए, इसलिए मुझे यहां कुछ याद आ रही है। बात यह है कि, यदि मैं क्रोम के देव उपकरण में नेटवर्क टैब की जांच करता हूं, तो अनुरोध किया जाता है और मुझे वह डेटा प्राप्त होता है जिसे मैं ढूंढ रहा हूं।
क्या कोई इस पर प्रकाश डाल सकता है?
संपादित करें:
मैं प्रतिक्रिया परिवर्तित करने की कोशिश की।
.text()
का उपयोग कर:
fetch('http://example.com/api/node', {
mode: "no-cors",
method: "GET",
headers: {
"Accept": "application/json"
}
})
.then(response => response.text())
.then((response) => {
console.log(response); // returns empty string
return dispatch({
type: "GET_CALL",
response: response
});
})
.catch(error => { console.log('request failed', error); });
और .json()
साथ:
fetch('http://example.com/api/node', {
mode: "no-cors",
method: "GET",
headers: {
"Accept": "application/json"
}
})
.then(response => response.json())
.then((response) => {
console.log(response.body);
return dispatch({
type: "GET_CALL",
response: response.body
});
})
.catch(error => { console.log('request failed', error); }); // Syntax error: unexpected end of input
क्रोम देव उपकरणों में देख रहे हैं:
मुझे काम करने के लिए 'fetch' नहीं मिल सका इसलिए मैंने [redux-api-middleware] (https://github.com/agraboso/redux-api-middleware/) का उपयोग शुरू किया। जब आप अनुरोध करते हैं तो आपको जेसन को प्रतिक्रिया को उसी तरह से परिवर्तित करना होगा जैसा कि यहां लोगों ने सुझाव दिया: –