Fetch API - Was ist die Verwendung von redirect: manual
Ich habe seit kurzem spielen mit dem Javascript Fetch API. Soweit ich das verstanden habe, werden standardmäßig alle Umleitungen transparent und am Ende bekomme ich eine Antwort von dem letzten Aufruf in der weiterleitungskette.
Allerdings konnte ich aufrufen, abrufen mit {redirect: 'manual'}, in dem Fall würde es wieder ein opaqueredirect Antwort mit keine brauchbaren Informationen. Von https://fetch.spec.whatwg.org/#concept-filtered-response-opaque-redirect
Einem undurchsichtigen-Umleitung gefiltert Antwort
ist eine gefilterte Antwort, dessen Typ "opaqueredirect", status 0, status Nachricht ist die leere eine byte-Sequenz-header Liste ist leer, Körper null ist, und der Anhänger leer ist.
https://fetch.spec.whatwg.org/#http-fetch sagt, dass eine Antwort bekommt opaqueredirect wenn redirect auf 'manual':
Schalter auf Anfrage redirect-Modus:
...
- Handbuch
Legen Sie die Antwort auf eine Opak-Umleitung gefiltert Antwort, deren interne Reaktion ist actualResponse.
Die Spezifikation sagt auch:
In anderen Worten, eine undurchsichtige gefiltert Antwort und ein Opak-Umleitung gefiltert Antwort sind fast nicht zu unterscheiden von einem Netzwerk-Fehler.
Gegeben alle diese, warum würde ein Satz redirect Betriebsanleitung bei der Verwendung der Fetch API? Mir scheint es ziemlich sinnlos. Gibt es Fälle, wo dies nützlich wäre?
- Gerade hatte, um ihn selbst zu benutzen. Ich war ein server angefragt, der hatte 3 leitet, genau zu definieren, ein paar Kekse.
fetch
war nicht vorbei, die cookies, so dass ich übergeben Sie Sie manuell.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, die kurze Antwort ist: es sei denn, Sie tun etwas mit service-worker-code wie das, was https://github.com/whatwg/fetch/issues/66 beschreibt, Sie wollen nicht jemals
redirect: 'manual'
.Längere Antwort:
Den HTML-spec zu verlangen scheint - Browser zunächst legen Sie den redirect-Modus zu
manual
wenn der browser gestartet wird, navigieren Sie zu einer Ressource, bevor Sie dann... (wieder)tun Sie es mit redirect-Modus ausgeschaltet? (In diesem Fall Standardeinstellungen zurückfollow
.) Ich verstehe nicht, warum der Algorithmus in den spec geht das auch so, aber denke, es muss etwas zu tun mit der Handhabung der Fall, wenn die navigation fehlschlägt. Egal, ich glaube, dass das der einzige Einsatz in jeder Skillung für diemanual
redirect-Modus.Sowieso, die Fetch API verfügbar machen alle dieselben Grundelemente, die Browser holt, aber das bedeutet nicht immer gibt es gute Einsatzmöglichkeiten für diese primitive in der web-app code (im Gegensatz zu der Verwendung, die der Browser selbst machen, der "primitive").
Also ich finde das Fetch-spec verwendet, zu verlangen, dass, obwohl Sie könnte rufen Sie die API mit
redirect: 'manual'
Browser werfen würde, wenn Sie getan haben—ich denke, weil damals niemand hatte noch vorgebracht, jeden gültigen Grund für Sie festgelegt werden, für jeden Fall anders als Browser tun Navigationen.Aber das Verhalten scheint, gewesen geändert durch https://github.com/whatwg/fetch/issues/66 beschreibt ein (Eck -) Fall, wo
redirect: 'manual'
ist erforderlich im service-worker-Codes.Einen ähnlichen Fall von etwas, das Sie festlegen können, in der Fetch-API, aber mit sehr wenig Dienstprogramm in der web-app-code ist
mode: 'no-cors'
. Das war zunächst nur Hinzugefügt, weil Browser verwenden es für bestimmte Anforderungen, so ist die Fetch-API macht es. Aber das ist ein anderer Fall, die begrenzte Dienstprogramm nur für service-Mitarbeiter—für die Zwischenspeicherung von Antworten dienen wieder als-ist später ohne die Notwendigkeit zu prüfen, die Antworten (diemode: 'no-cors'
verhindert, dass web-app-code zu tun).