Apollo-link-rest: Broken React-Apollo Beispiel

Erstellt am 7. Juni 2018  ·  6Kommentare  ·  Quelle: apollographql/apollo-link-rest

Hallo:

Ich fange gerade mit apollo-link-rest mit der Grundkonfiguration in Ihrer react-apollo Codesandbox an .

Anstatt die Liste der Fernsehsendungen anzuzeigen, zeigt die Benutzeroberfläche den folgenden Fehler an: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode .

Beim Replizieren dieses Codes in meiner eigenen create-react-app -Umgebung ist beim Ausführen einer Anforderung auf Apollo DevTools der folgende Fehler aufgetreten:

{
  "errors": [
    {
      "message": "forward is not a function",
      "locations": [
        "TypeError: forward is not a function\n    at RestLink../node_modules/apollo-link-rest/bundle.umd.js.RestLink.request (http://localhost:3000/static/js/bundle.js:21028:20)\n    at http://localhost:3000/static/js/bundle.js:19809:33\n    at ApolloLink.request (http://localhost:3000/static/js/bundle.js:17407:12)\n    at ApolloLink.request 
    }
  ]
}

Vielen Dank für Ihre Arbeit an diesem Link! Es macht die Arbeit mit REST viel einfacher, indem GraphQL-ähnliche Funktionen für diejenigen von uns bereitgestellt werden, die an REST-APIs festhalten.

help wanted 🛠 question❔

Hilfreichster Kommentar

Sollte in v0.3.1 behoben sein - jetzt verfügbar!

Alle 6 Kommentare

@sinisterra Wenn wir in unserer App forward is not a function , liegt dies normalerweise daran, dass wir eine @client oder @rest(…) Direktive auf einem der Knoten vergessen haben. Ist das bei Ihnen der Fall?

In Bezug auf Ihren Fehler mit fetch - in welchem ​​Browser testen Sie?

@fbartho Nein, ich @rest wird ordnungsgemäß angewendet. Ich verwende Google Chrome 67.0.3396.62. Als ich versuchte, das Beispiel in Firefox 60.0.1 auszuführen, schlug es ebenfalls fehl, jedoch mit einem anderen Fehler: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.

Es geht nicht nur um das kaputte Beispiel! Ich denke, dieses Problem ist sehr kritisch.
Ich erhalte jetzt auch den gleichen Fehler in meiner Produktionsumgebung, die in den letzten Monaten mit Apollo-Link-Rest einwandfrei funktioniert hat. Ich denke, das muss an einem Browser-Update liegen?
Ich benutze Chrom Version 67.0.3396.79 (Official Build) (64-bit)

Das gleiche Problem tritt bei Safari und Firefox auf. Ich verstehe es überhaupt nicht. Die gleiche Version meiner Anwendung funktionierte seit dem 24. Mai einwandfrei.

es passiert nur bei Anfragen, die ich mit apollo-link-rest mache, obwohl ich mein customFetch fn konfiguriert habe, das funktioniert. ¯_ (ツ) _ / ¯

Ich erhalte auch den gleichen Fehler, wenn ich meine customFetch -Konfiguration entferne.

Ich habe das Problem tatsächlich gefunden.
Ich verwende eine customFetch -Funktion, die von apollo-link-rest mit dem Optionsparameter credentials: null aufgerufen wird. Dies verursacht diesen Fehler bei allen Browsern einschließlich der neuen Version von Chrome.

Meine schnelle Lösung für meine benutzerdefinierte Abruffunktion, da ich keine Anmeldeinformationen verwende, lautet wie folgt:

export function fetchWithAuth(url, options = {}) {
  // this fixes apollo-link-rest providing credentials: null options
  const { credentials, ...opt } = options
  return fetch(url, getOptions(opt));
}

Ich schlug auch mit dem Kopf gegen die Wand und bekam "Netzwerkfehler: Fehler beim Abrufen", wodurch verhindert wurde, dass die Abfrage auch nur mit Apollo-Link-Rest ausgeführt wurde. @JuHwon ist richtig, dies scheint mit der Option für Anmeldeinformationen im RestLink-Konstruktor verbunden zu sein. Während es früher gemäß der Dokumentation als optional funktionierte, kann ich es jetzt erst zum Laufen bringen, nachdem ich die Option wie folgt eingefügt habe:

const restLink = new RestLink({  
  uri: ${process.env.REACT_APP_API_URL}/,  
  credentials: 'same-origin',  // eg. or credentials: 'omit', etc
});

Sollte in v0.3.1 behoben sein - jetzt verfügbar!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen