2017-04-26 1 views
0

온라인 HTML 문서를 읽고 Angular를 사용하여 일부 데이터를 구문 분석하려고합니다. 문제는 계속 cors에 대한 오류가 발생하고 있습니다. 나는 특정 웹 사이트에서 HTML 문서를 얻기 위해 인수로 (예를 들어 IMDB 가장 인기있는 영화를) 예상이 코드를 테스트 할 때온라인 HTML 문서를 각도로 문자열로 읽는 방법

loadParsingData(htmlToParse:String){ 
    let retVal = this.http.get(htmlToParse.toString()) 
    .map(res => res.text()) 
    return retVal; } 

,하지만 난 얻을 모두는 다음과 같습니다 : HTML 문서를 읽어 내 코드는

XMLHttpRequest는 http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8을로드 할 수 없습니다. 아니요 요청한 리소스에 'Access-Control-Allow-Origin'헤더가 있습니다.

아무도 도와 줄 수 있습니까? 미리 감사드립니다.

답변

1

대신 CORS 프록시를 통해 요청을 보낼 수 있습니다. 요청을하게됩니다

https://cors-anywhere.herokuapp.com/http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8 

https://cors-anywhere.herokuapp.com로 전송하는 그 요청을 보내드립니다 프록시를 : 당신은 지금 당신의 코드에서 URL http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8을 지정하고

, 그냥이 URL과 그 교체 에 http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8. 그리고 해당 프록시가 응답을 받으면 응답 헤더를 취하여 응답 헤더를 Access-Control-Allow-Origin에 추가 한 다음이를 요청한 프론트 엔드 코드로 응답으로 전달합니다.

응답 헤더가 인 응답 헤더가 브라우저에서 보는 메시지이므로 브라우저에서 표시되는 오류 메시지가 사라지고 브라우저에서 프론트 엔드 JavaScript 코드가 응답에 액세스 할 수 있습니다.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS에는 CORS에 대한 일반적인 세부 정보가 있으며 "No 'Access-Control-Allow-Origin' header is present on the requested resource"은 자신의 CORS 프록시를 설정하는 방법에 대한 자세한 내용입니다.