2015-06-05 24 views
5

Warum Caching einer Anwendung verhindert Cors Anfrage?Warum Caching HTML5-Seite verhindern, Cors Anfrage zu tun?

Ich habe ein Beispiel, zwei HTML-Seite exakt identisch mit Ausnahme der zweiten Zeile:

index.htmllink

<!DOCTYPE html> 
<html manifest="main.appcache"> 

index2.htmllink

<!DOCTYPE html> 
<html> 

Warum der eine ohne Manifest funktioniert gut und der mit Manifest funktioniert nur das erste Mal und aufhören zu arbeiten, wenn die Anwendung zwischengespeichert wird? (F5 mehrmals drücken)

Ich habe mit Firefox, Chrome und IE getestet.

+0

Und wenn Sie auf Ihrem Desktop speichern ... es funktioniert! – Thomas

+0

Was hat CORS damit zu tun, führen Sie tatsächlich domänenübergreifende Aufrufe aus? – adeneo

+2

Haben Sie versucht, Ihren Appcache mit dem Abschnitt NETWORK zu aktualisieren, der Anfragen zulässt? Versuche es mit einem einfachen NETZWERK *. Details hier http://www.html5rocks.com/en/tutorials/appcache/beginner/. Andernfalls, wenn Ihr FastFlicker nicht im CACHE-Bereich ist, wird es nicht geladen, und der Cache gibt 404 zurück, was bedeutet, dass die Ressource nicht zwischengespeichert wird. – Andrey

Antwort

3

Nach this article

NETWORK: Dateien in diesem Abschnitt aufgeführt ist, kann aus dem Netz kommen, wenn sie nicht im Cache sind, sonst wird das Netzwerk nicht verwendet werden, selbst wenn der Benutzer online ist. Sie können hier spezifische URLs in die Whitelist aufnehmen oder einfach "*", wodurch alle URLs zugelassen werden. Die meisten Websites benötigen "*".

Das von Ihnen beschriebene Verhalten ist angemessen, da Ihr Appcache-Manifest keinen NETWORK-Abschnitt enthält.

Update: Anfrage, die fehlschlägt - ist nicht CORS - weil Domäne, Protokoll und Port identisch sind.

+1

Sie haben eigentlich recht, es sind keine Cors-Anrufe – Thomas

+0

Es funktioniert! Danke +1 – Thomas