Si verificano problemi durante l'utilizzo di Cordova e API di recupero. sto eseguendo il seguente codiceFetch API e 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'))
});
Quando il codice viene eseguito nel browser intestazione 'X-authtoken' sia correttamente recuperato e registrata. Quando eseguo lo stesso codice quando è inserito nella mia app Cordova, l'intestazione 'X-AuthToken' è nullo. Inoltre, ciò che è strano è che posso vedere perfettamente l'intestazione impostata quando si controlla il lato server di risposta e quando si annusa sulla rete così sono completamente sicuro che l'intestazione sia lì (semplicemente non viene restituita dall'API di recupero); infatti quando si utilizza il XMLHttpRqeuest equivalente l'intestazione è impostato correttamente:
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'));
}
}
Vale la pena di segnalare che quando provo a scaricare altre intestazioni comuni come pragma, Cache-Control, ... che siano correttamente registrati. Sembra che l'API di recupero stia filtrando le intestazioni e rimuovendo quelle che non sono standard. Qualcun altro ha riscontrato lo stesso problema? Mi sto perdendo qualcosa?
il fetch api non ha un buon supporto sui browser mobili. http://caniuse.com/#feat=fetch – albanx
I progetti @pinturic per android e ios cordova utilizzano entrambi webkit. L'API di recupero non è ancora supportata al 100% nel webkit. vedi la mia risposta qui sotto –