2016-07-14 7 views
5

मैं सर्वर पर कुछ डेटा पोस्ट करने का प्रयास कर रहा हूं लेकिन मुझे नहीं पता कि प्रतिक्रिया डेटा कैसे प्राप्त किया जाए।लाने से डेटा प्राप्त करें -> वादा -> प्रतिक्रिया

मैं निम्नलिखित कोड है:

fetch(url, { 
    method: 'POST', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json' 
    }, 
    body: JSON.stringify({ 
    email: login, 
    password: password, 
    }) 
}).then(function(a){ 
    console.log(a); 
}) 

यह एक Response यह इस तरह शरीर (ReadableByteStream), bodyUsed (गलत), ठीक है (सही) के रूप में डेटा शामिल प्रिंट, स्थिति (200), ... लेकिन मुझे वह डेटा नहीं मिल रहा है जो मैं वापस प्राप्त करता हूं, कहीं नहीं। जब मैं क्रोम डेवलपर कंसोल खोलता हूं - नेटवर्क मैं वहां प्रतिक्रिया डेटा देखता हूं।

मैं क्या गलत कर रहा हूं?

मैं कुछ संसाधनों की तलाश कर रहा हूं कि कैसे पहुंचे, वादे, ... काम करते हैं लेकिन मुझे कोई अच्छी तरह से लिखा नहीं जा सका।

+1

संभावित भाषण [प्राप्त करने का वादा कभी निष्पादित नहीं होता] [http://stackoverflow.com/questions/36005787/fetch-promise-never-gets-executed) – Marco

उत्तर

11

.json(), या .blob() जैसे fetch प्रतिक्रिया पर कॉल करने के लिए और तरीके हैं। ये विधियां एक वादा वापस करती हैं जिसे आप .then() पर कॉल कर सकते हैं।

fetch(url, { 
    method: 'POST', 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json' 
    }, 
    body: JSON.stringify({ 
     email: login, 
     password: password, 
    }) 
}) 
    .then(function (a) { 
     return a.json(); // call the json method on the response to get JSON 
    }) 
    .then(function (json) { 
     console.log(json) 
    }) 

बाहर चेक some documentation on using fetch, और कैसे एक में response object works लाने फोन पर कुछ अन्य प्रलेखन।

संबंधित मुद्दे