Estoy tratando de leer un documento html en línea y analizar algunos datos usando Angular. El problema es que sigo recibiendo un error sobre cors . Mi código para leer documentos html es:
loadParsingData(htmlToParse:String){ let retVal = this.http.get(htmlToParse.toString()) .map(res => res.text()) return retVal; }Cuando trato de probar este código, espero obtener un documento html del sitio web dado (por ejemplo, las películas más populares de imdb) como argumento, pero todo lo que obtengo es:
XMLHttpRequest no puede cargar http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8 . No hay ningún encabezado 'Access-Control-Allow-Origin' en el recurso solicitado.
¿Alguien puede ayudarme por favor? Gracias de antemano.
En su lugar, puede enviar su solicitud a través de un proxy CORS.
Cuando esté especificando la URL http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8 en su código ahora, simplemente reemplácela con esta URL:
https://cors-anywhere.herokuapp.com/http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8 Eso hará que la solicitud se envíe a https://cors-anywhere.herokuapp.com , un proxy que luego enviará la solicitud a http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8 . Y cuando ese proxy obtenga la respuesta, la tomará y le agregará el encabezado de respuesta Access-Control-Allow-Origin y luego lo devolverá a su código de interfaz de solicitud como respuesta.
Esa respuesta con el encabezado de respuesta Access-Control-Allow-Origin es lo que ve su navegador, por lo que el mensaje de error que le muestra el navegador ahora desaparece y el navegador permite que su código JavaScript frontend acceda a la respuesta.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS tiene detalles generales sobre CORS, y "No hay encabezado 'Access-Control-Allow-Origin' presente en el recurso solicitado" es una respuesta con más detalles sobre cómo puede configurar su propio proxy CORS.