Was ist eine undurchsichtige Antwort, und was für einen Zweck soll es dienen?
Versuchte ich fetch
die URL der alten website, und ein Fehler passiert:
Fetch API cannot load http://xyz.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://abc' is therefore not allowed access.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.
Verstand ich die Botschaft, und versucht zu tun, eine Anforderung, gibt eine undurchsichtige Antwort:
fetch("http://xyz", {'mode': 'no-cors'})
Ok, es funktioniert jetzt... aber ich kann es nicht Lesen. =\
Was ist der Zweck dann, von einer undurchsichtigen Antwort?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Betrachten wir den Fall, in dem ein service-Mitarbeiter fungiert als Agnostiker cache. Ihr einziges Ziel ist, dienen die gleichen Ressourcen, die Sie würden, get aus dem Netz, aber schneller. Natürlich kann man nicht sicherstellen, dass alle Ressourcen werden Teil Ihrer Herkunft (man denke Bibliotheken diente von CDNs, zum Beispiel). Als der service-Mitarbeiter hat das Potenzial der Veränderung-Netzwerk Antworten, die Sie brauchen, zu garantieren, dass Sie nicht daran interessiert sind, den Inhalt der Antwort, noch auf die Kopfzeilen, noch auf das Ergebnis. Sie sind nur daran interessiert, auf die Antwort, als eine black-box, um eventuell cache und servieren Sie es schneller.
Dies ist, was
{ mode: 'no-cors' }
wurde gemacht.Status code
ist immer0
, wie um zu überprüfen, ob es erfolgreich war, wennstatus is never 200
?Undurchsichtige Antworten kann nicht zugegriffen werden, per JavaScript, aber Sie können immer noch cache mit der Cache API und reagieren mit Ihnen in die
fetch
event-handler in einem service-Mitarbeiter. So sind Sie nützlich für die Herstellung Ihrer app offline, auch für Ressourcen, die Sie nicht kontrollieren können (z.B. Ressourcen auf ein CDN, dass nicht die CORS-Header).Gibt, ist auch die Lösung für Node JS app. CORS Überall ist ein NodeJS-proxy, fügt CORS-Header auf die weitergeleitete Anfrage.
Die url zum proxy ist wörtlich entnommen aus dem Weg, validiert und Proxy. Das Protokoll Teil des über die Proxyklasse zugänglich URI ist optional, und der Standardwert ist "http". Wenn port 443 angegeben ist, wird das Protokoll standardmäßig auf "https".
Dieses Paket nicht, stellen Sie keine Einschränkungen auf die http-Methoden oder-Header, außer für cookies. Anfordernde Benutzer die Anmeldeinformationen nicht zulässig ist. Die app kann so konfiguriert werden, dass ein header für die Verwendung von proxyfunktionen eine Anfrage, zum Beispiel zu vermeiden, ein direkter Aufruf aus dem browser. https://robwu.nl/cors-anywhere.html