2017-04-26 12 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プロキシ経由でリクエストを送信できます。

あなたはこのURLでそれを置き換える、今、あなたのコード内のURL http://www.imdb.com/chart/moviemeter?ref_=nv_mv_mpm_8を指定している

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

https://cors-anywhere.herokuapp.comに送信される要求は、要求を送信するプロキシの原因になりますオンに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プロキシの設定方法に関する詳細が記載されています。

関連する問題