Ich habe Probleme bei der Verwendung zusammen Cordova und Fetch API. Ich Ausführung den folgenden CodeFetch API und 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'))
});
Wenn der Code im Browser der ‚X-authToken‘ Header korrekt abgerufen und protokolliert ausgeführt wird. Wenn ich denselben Code ausführe, wenn er in meiner Cordova-App gepackt wird, ist der X-AuthToken-Header null. Darüber hinaus ist es seltsam, dass ich den Header-Satz perfekt sehen kann, wenn ich die Antwort-Server-Seite überprüfe und im Netzwerk schnüffle, so dass ich absolut sicher bin, dass der Header da ist (einfach wird nicht von der Fetch-API zurückgegeben); in der Tat bei der Verwendung des äquivalenten XMLHttpRqeuest der Header richtig eingestellt ist:
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'));
}
}
Es lohnt sich, signalisiert, dass, wenn ich andere gemeinsame Header wie Pragma Dump versuchen, Cache-Control, ... sie korrekt angemeldet sind. Es scheint, als ob die Fetch-API die Header filtert und diejenigen entfernt, die nicht Standard sind. Hat jemand das gleiche Problem? Fehle ich etwas?
Die Fetch Api hat keine gute Unterstützung für mobile Browser. http://caniuse.com/#feat=fetch – albanx
@pinturic android und ios cordova projekte verwenden beide webkit. Die Fetch-API wird im Webkit noch nicht zu 100% unterstützt. Siehe meine Antwort unten –