0

私のAPIの1つでjsonの結果を取得する際に問題があります:

以下のコードを使用して呼び出してみました:

var url = 'domain.com/'
var query = $http({
    method: 'GET',
    url: url,
    headers: {'Content-Type': 'application/json'}
});
console.log(query);

そして、コントローラーで単純な $http get

var url = $http.get('http://domain.com');
console.log(url);

いつも私にくれた

XMLHttpRequest はhttp://domain.comを読み込めません。オリジン ドメインは Access-Control-Allow-Origin で許可されていません。

次に、メソッド タイプを GET から JSONP に変更しようとしましたが、

Uncaught SyntaxError: Unexpected token :

Web ブラウザーを使用して URL を表示する場合、それは有効な json オブジェクトです。

4

1 に答える 1

1

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

呼び出し元の JS を配信したドメインの外部にあるドメインからデータを XHR しようとすることで、シングル オリジン ポリシーに違反しています。XHR で取得したデータは、サイトが提供されているのと同じホストとポートから発信されている必要があります。これは、クロス サイト スクリプティング攻撃から保護するために配置されています。

これを JSONP で回避できます (JSONP 呼び出しに別の問題があるのではないかと思いますが、投稿しますか?)、または API からの応答に正しいヘッダー Access-Control-Allow-Origin: *; を含めることで回避できます。

于 2013-08-16T10:39:31.083 に答える