¿Cómo hacer solicitudes HTTP habilitadas para CORS en Angular 2?
(1)
De hecho, no es un problema de Angular2 sino un problema en el lado del servidor.
La solicitud OPTIONS con verificación previa debe devolver un encabezado
Access-Control-Allow-Origin
en su respuesta.
Enviar el encabezado de
Origin
en la solicitud original habilitará el soporte de CORS en el lado del servidor.
El navegador agrega automáticamente este encabezado cuando detecta que el dominio de la solicitud no es el mismo que el de la persona que llama.
Tenga cuidado al implementar la solicitud OPTIONS de verificación previa en el lado del servidor ya que las credenciales no se envían a este nivel . Solo se envían dentro de la solicitud de destino. Parece ser el problema ya que tiene un error 503. Estás intentando comprobar si la solicitud de OPCIONES está autenticada, pero en realidad no es así ...
Vea este artículo para más detalles:
El error es el siguiente:
XMLHttpRequest no puede cargar http://some_url.herokuapp.com/api/some_api/ . No hay encabezado ''Access-Control-Allow-Origin'' presente en el recurso solicitado. Por lo tanto, el origen '' http: // localhost: 3000 '' no tiene acceso permitido. La respuesta tenía el código de estado HTTP 503.
al llamar
devuelve this._http.post (requestUrl, JSON.stringify (requestBody), requestOptions)
Tuve problemas con CORS (cuando trabajaba con Angular 1 ) en el pasado y recuerdo que una vez que CORS se activó en el lado del servidor, tuve que transformar la solicitud http para analizar ciertos encabezados HTTP .
Estoy bastante confundido acerca de cómo debería funcionar, por lo que cualquier explicación es muy bienvenida.