2017-06-03 10 views
0

their apiを使用して「darksky.net」から情報を取得しようとしています。darksky.netからデータを要求しているAccess Control-Allow-Originエラー

var xhr = new XMLHttpRequest(); 
    xhr.open(method, url, true); 
     xhr.onload = function() { 
      if (this.status >= 200 && this.status < 300) { 
       resolve(xhr.response); 
      } else { 
       reject({ 
        status: this.status, 
        statusText: xhr.statusText 
       }); 
      } 
     }; 

error in chrome

だけの純粋なJavaScriptで答えてください。

答えて

3

darksky FAQから、API呼び出し用のプロキシサーバーをセットアップする必要があります。

大変申し訳ございません。純粋なjavascriptです。それだけでは不可能です。

は、なぜ私はAPIを呼び出すしようとするとエラーがいいえ「をアクセス制御 - 許可 - 起源」ヘッダが要求されたリソース上で 存在しているのですか?

ダークスカイではセキュリティを非常に重視しています。セキュリティ上の予防措置として、 は、当社のサーバー上でクロスオリジンリソース共有(CORS)を無効にしています。

API呼び出しには、要求の一部として秘密APIキーが含まれています。 クライアント側コードからAPI呼び出しを行う場合、誰でも APIキーを抽出して使用すると、 に支払う必要がある請求書が作成されます。 CORSを無効にして、APIの秘密鍵を秘密のままにします( )。

APIの乱用を防ぐには、 のAPIを舞台裏で呼び出すようにプロキシサーバーを設定する必要があります。その後、APIキーを公開せずにクライアントに の予測を提供することができます。

0

問題はバックエンド側です。 CorsのウェブAPIの調整が必要

関連する問題