2016-07-30 15 views
10

Ich benutze Fetch API für die Interaktion mit Server in meiner [email protected] App, aber mit ziemlich aggressiven Caching konfrontiert.React-Native Fetch API aggressive Cache

Anruf, den ich gehen kann wie ausgedrückt werden:

fetch(route + '&_t=' + Date.now(), { 
    headers: { 
    'Cache-Control': 'no-cache', 
    'Accept': 'application/json, text/plain, */*', 
    'Content-Type': 'application/json', 
    'Custom-Auth-Header': 'secret-token' 
    }, 
    method: 'POST', 
    body: data, 
    cache: 'no-store' 
}) 

In IOS-Simulator Antwort für 15-20 Minuten im Cache erhält, kann über Reset-Inhalt und Einstellungen gelöscht werden.

Im Ergebnis möchte ich nur keinen Cache für einen meiner Anrufe (einschließlich GET-Anfragen) haben.

Ich habe alle Optionen ausprobiert, die ich kenne, um Caching zu vermeiden, aber es scheint, dass es noch etwas gibt, jede Hilfe wäre sehr geschätzt!

+0

Ich habe das gleiche Problem erlebt. Irgendwelche Vorschläge, wo man die Lösung findet? –

+0

Ist das nicht ein sehr wichtiger Bug/Problem? Ich sehe nicht, wie akzeptierte Lösung das Problem behebt, für mich scheint es, als akzeptierte Antwort einige spezifische Situation behebt, aber nicht das Problem selbst – andrfas

Antwort

4

Es stellte sich heraus, dass das Caching vom Server verursacht wurde, der das Session-Cookie gesetzt hat. iOS/Android handhabt Cookies automatisch, so dass es bei jedem Holaufruf verwendet wurde.

Die Lösung löschte alle Cookies beim Abmelden mithilfe der Bibliothek https://github.com/joeferraro/react-native-cookies.