2

$http サービスを介してAppVeyor REST APIに GET 要求を行い、プロジェクトの最後のビルド ステータスを取得する角度付きアプリを作成していますが、CORS エラーが発生しています。

Fiddlerから試してみると、うまくいきます。

var buildStatus= 'https://ci.appveyor.com/api/projects/accountName/projectSlug';
var token = 'q3245dsfg'; // my account api token

$http.get(buildStatus, {
    headers: {
        'Authorization': 'Bearer ' + token
    }
 }).then(...

これは、Firefox で発生するエラーです。

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://ci.appveyor.com/api/projects/accountName/projectSlug. (Reason: CORS request failed).

何か案は?

4

2 に答える 2

0

ブラウザのセキュリティ CORS の制限により、リクエストは失敗しました。

たとえば、ドメイン xyz.com からページをロードしたとします。セキュリティ上の理由から、ブラウザはロードされたページからの ajax リクエストをドメイン xyz.com に対してのみ許可します。ページがドメイン ci.appveyor.com に ajax 要求を送信する場合、外部ドメインは、値としてサイト ドメイン (またはワイルドカード) を含む 'Access-Control-Allow-Origin' ヘッダーを返す必要があります。

私が理解しているように、リモートサーバーでCORSヘッダーを変更できないため、別の機能があります-サーバー側のプロキシを使用できます:

1 - いくつかのプロキシ サーバー (nginx など) を使用できます。 2 - ビジネス ロジックからデータを要求でき、ロジックは外部サービスからデータを要求できます。

于 2016-02-09T22:06:29.117 に答える