Come rendere le richieste HTTP abilitate per CORS in Angular 2?

L’errore è il seguente:

XMLHttpRequest non può caricare http://some_url.herokuapp.com/api/some_api/ . Nessuna intestazione ‘Access-Control-Allow-Origin’ è presente sulla risorsa richiesta. L’origine ‘ http: // localhost: 3000 ‘ non è quindi consentita l’accesso. La risposta aveva codice di stato HTTP 503.

quando si chiama

restituire this._http.post (requestUrl, JSON.stringify (requestBody), requestOptions)

Ho avuto problemi con CORS (quando lavoravo con Angular 1 ) in passato e ricordo che una volta che i CORS sono stati triggersti ​​dal lato server, ho dovuto trasformare la richiesta http per analizzare alcune intestazioni HTTP .

    Sono abbastanza confuso su come dovrebbe funzionare, quindi qualsiasi spiegazione è molto gradita.

    In realtà, non è un problema Angular2 ma un problema sul lato server. La richiesta OPTIONS con preflight deve restituire un’intestazione Access-Control-Allow-Origin nella sua risposta.

    L’invio dell’intestazione Origin nella richiesta originale abiliterà il supporto CORS sul lato server. Questa intestazione viene automaticamente aggiunta dal browser quando rileva che il dominio della richiesta non è uguale a quello del chiamante.

    Prestare attenzione quando si implementa la richiesta OPZIONI di preflight sul lato server poiché le credenziali non vengono inviate a questo livello . Vengono inviati solo all’interno della richiesta di destinazione. Sembra essere il problema dato che hai 503 errori. Stai provando a verificare se la richiesta OPTIONS è autenticata, ma in realtà non è così …

    Vedi questo articolo per maggiori dettagli: