2015-04-15 22 views
10

Ho due servizi separati, un'applicazione React a pagina singola e un'API express e sto cercando di comunicare dalla SPA all'API utilizzando la nuova funzionalità fetch. Poiché i due servizi si trovano su domini diversi, sto utilizzando un middleware CORS all'interno dell'applicazione express per poter effettuare richieste dalla SPA all'API. Sto cercando di fare qualsiasi fetch richieste includono anche i cookie in modo che modo posso verificare i biscotti nella mia applicazione express, ad esempioDifficoltà nell'invio di cookie con richieste di recupero in JavaScript

Sul lato client:

fetch('http://localhost:8000/hello', { 
    credentials: 'include', 
    mode: 'cors' 
}).then(/* ... */) 

Sul lato server:

Tuttavia, indipendentemente da ciò che provo, non riesco ancora ad accedere ai cookie sull'oggetto request nonostante sia possibile accedervi tramite document.cookies.

Un esempio di cookie:

name: token 
value: TOKEN_VALUE 
domain: localhost 
path:/
http: false 
secure: false 

Qualcuno ha suggerimenti su come avvicinarsi a questo? Qualsiasi aiuto sarebbe molto apprezzato!

+0

E 'solo un errore di battitura che non hai citazione di chiusura dopo 'credenziali: 'include'? Inoltre, hai un JSFiddle o Pnkr? – Trevor

+0

Sì, mi dispiace! Solo un refuso E purtroppo no perché coinvolge un componente lato server. –

+0

Puoi condividere il tuo codice lato client. Posso creare il mio server. – Trevor

risposta

7

La libreria di polyfill di recupero che si sta utilizzando non è di questo tipo di scrittura up-to-spec. Per le credenziali, si aspetta che "cors" sia il valore anziché "include". Vorrei modificare la mia copia locale di fetch.js sulla riga 264 per adattarla allo standard, inviare una richiesta di pull e stare alla ricerca di una libreria di polyfill supportata.

Vedi questione aperta: https://github.com/github/fetch/issues/109

https://github.com/github/fetch

https://developer.mozilla.org/en-US/docs/Web/API/GlobalFetch/fetch

+0

Ci sono già richieste di pull sul repository per risolvere il problema: https://github.com/github/fetch/pull/113/files – Cordle

+1

Ciao, ho avuto lo stesso problema. cambiare in "cors" invece di "include" non ha risolto il problema per me :( –

+1

questa è la mia domanda: http://stackoverflow.com/questions/35612226/session-can-non-savita-sente-da-da- fetch-post-request –

Problemi correlati