2017-12-07 13 views
10

Ich baue Android App mit nativen Expo-Reaktion integriert mit Redux. Die API wird mit der Fetch-Methode aufgerufen, aber immer wird das zwischengespeicherte Ergebnis angezeigt. Der Server hat die Anfrage das zweite Mal nicht erhalten. Ich habe versucht, Cache mit dem folgenden Code zu deaktivieren.React Native Fetch-API kann das Caching nicht deaktivieren

Wenn ich die API über den Postman-Client aufrufen, sehe ich ein anderes Ergebnis (nicht zwischengespeichert). Ich habe versucht, Zufallszahlen als Parameter hinzuzufügen und Cache-Control-Header zu setzen, aber immer noch zwischengespeicherte Ergebnisse zurückgeben. Gibt es noch etwas, das ich versuchen könnte?

Dank

+1

Interessante folgen kann. AFAIK, die fetch api speichert nichts automatisch. Vielleicht findet das Caching auf der API-Seite statt? Wären Sie bereit, den Endpunkt der API zu teilen, damit ich damit spielen kann? –

+0

Ich denke, "Cache-Control": "No-Cache" muss funktionieren. Können Sie bitte API Endpunkt teilen, so können wir überprüfen, Problem –

+0

Sorry, Jungs, es war ein Fehler auf dem Server. Ich habe eine andere Funktion aufgerufen und nicht die, die ich bearbeitet habe. Ah. ich Idiot. –

Antwort

3

Es muss ein Problem mit, wie sind Sie auf die Überschriften zum Abrufen Anfrage einrichten.

Versuchen mit folgenden,

Sie dem Link für das gleiche in den Official Fetch API

const mymails = (token) => { 
 

 
    var myHeaders = new Headers(); 
 
    myHeaders.set('Accept', 'application/json'); 
 
    myHeaders.set('Content-Type', 'application/json'); 
 
    myHeaders.set('Authorization', 'Token token=' + String(token)); 
 
    myHeaders.set('Cache-Control', 'no-cache'); 
 
    myHeaders.set('Pragma', 'no-cache'); 
 
    myHeaders.set('Expires', '0'); 
 

 
    return fetch(
 
     API_URL + '?random_number=' + new Date().getTime(), { 
 
      method: 'GET', 
 
      headers: myHeaders 
 
     }) 
 
     .then(response => response.json()); 
 
};

+0

Guy hat gesagt, er hatte einen Fehler in seinem Server, es ging nicht um die Fetch oder JS-Ebene. –

+0

ja, in diesem Fall sollte er die Frage löschen, nicht wahr? –

Verwandte Themen