2016-02-22 17 views
7

मुझे कॉर्डोवा और fetch API को एक साथ उपयोग करते समय समस्याएं आ रही हैं। मैं निम्नलिखित कोडFetch API और Cordova

fetch(BASE_URL + '/auth/login', { 
    method: 'post', 
    credentials: 'include', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/x-www-form-urlencoded' 
    }, 
    body: transformRequest({username: email, password: password}) 
}).then(response => { 
     console.log(response.headers.get('X-AuthToken')) 
}); 

को क्रियान्वित कर रहा हूँ जब कोड ब्राउज़र 'एक्स-AuthToken' शीर्षक सही ढंग से लिया गया और लॉग होता है में मार डाला गया है। जब मैं अपने कॉर्डोवा ऐप में पैक किए जाने पर एक ही कोड चलाता हूं तो 'एक्स-ऑथोकोकन' हेडर शून्य है। इसके अलावा अजीब बात यह है कि प्रतिक्रिया सर्वर की तरफ देखकर और नेटवर्क पर सूँघते समय मैं पूरी तरह से हेडर सेट देख सकता हूं, इसलिए मुझे पूरा यकीन है कि हेडर वहां है (बस इसे fetch API द्वारा वापस नहीं किया जाता है); वास्तव में बराबर XMLHttpRqeuest हैडर ठीक से सेट है का उपयोग करते समय:

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", BASE_URL + /api/auth/login", true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp.send("username=username&password=password"); 
xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
     console.log (xhttp.getResponseHeader('X-AuthToken')); 
    } 
} 

यह संकेत दे कि जब मैं pragma, कैश-नियंत्रण जैसे अन्य आम हेडर डंप करने की कोशिश, ... वे सही ढंग से लॉग इन कर रहे लायक है। यह fetch API की तरह सीम हैडर को फ़िल्टर कर रहा है और उन मानक को हटा रहा है जो मानक नहीं हैं। क्या कोई और समस्या का सामना कर रहा है? क्या मैं कुछ भूल रहा हूँ?

+1

fetch api मोबाइल ब्राउज़र पर अच्छा समर्थन नहीं है। http://caniuse.com/#feat=fetch – albanx

+1

@ पिंटुरिक एंड्रॉइड और आईओएस कॉर्डोवा परियोजनाएं दोनों वेबकिट का उपयोग करती हैं। Fetch API अभी तक वेबकिट में 100% समर्थित नहीं है। नीचे मेरा जवाब देखें –

उत्तर

1

अच्छी तरह से सवाल डालें, आप अत्याधुनिक पर विकास कर रहे हैं। मैं अब के लिए XMLHTTPRequest से चिपके रहूंगा। एपीआई प्राप्त करें वेबकिट में ठीक से लागू नहीं किया गया है। webkit bugzilla bug 151937

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