2011-07-27 4 views
1

私はGoogleプレイスAPIにJSONリクエストを作ってるんだ:Javascriptを:クロスオリジンリソースの共有とXMLHttpRequestの問題

function load(){ 

    var req = new XMLHttpRequest(); 

    req.open('GET', 'https://maps.googleapis.com/maps/api/place/details/json?reference=CnRhAAAARMUGgu2CeASdhvnbS40Y5y5wwMIqXKfL-n90TSsPvtkdYinuMQfA2gZTjFGuQ85AMx8HTV7axABS7XQgFKyzudGd7JgAeY0iFAUsG5Up64R5LviFkKMMAc2yhrZ1lTh9GqcYCOhfk2b7k8RPGAaPxBIQDRhqoKjsWjPJhSb_6u2tIxoUsGJsEjYhdRiKIo6eow2CQFw5W58&sensor=true&key=xxxxxxxxxxxxx', false); 

    req.send(null); 

    if(req.status == 200){ 

     dump(req.responseText); 

     } 
} 

しかし、Chromeはエラーを返して:

XMLHttpRequest cannot load https://maps.googleapis.com/maps/api/place/details/json?reference=CnRhAAAARMUGgu2CeASdhvnbS40Y5y5wwMIqXKfL-n90TSsPvtkdYinuMQfA2gZTjFGuQ85AMx8HTV7axABS7XQgFKyzudGd7JgAeY0iFAUsG5Up64R5LviFkKMMAc2yhrZ1lTh9GqcYCOhfk2b7k8RPGAaPxBIQDRhqoKjsWjPJhSb_6u2tIxoUsGJsEjYhdRiKIo6eow2CQFw5W58&sensor=true&key=xxxxxxxxxxxxxx. 
Origin http://sandrayoon.com is not allowed by Access-Control-Allow-Origin. 

がありますクロスオリジンリソースの共有を防止するか回避する方法?私はこのセキュリティ問題に慣れていません。

+0

答えは質問とは関係ありません – Ila

答えて

3

ブラウザがブラウザにこの応答をjavascriptに渡すために、サーバーは「Access-Control-Allow-Origin」ヘッダーで応答する必要があります。また、ドメイン間の要求を許可するように「*」を設定することもできます。

ここにはintroがあります。

4

これを防ぐ唯一の方法は、あなたのコントロール下にないサーバーから適切なAccess-Control-Allow-Originヘッダーを送信することです。基本的な答えは「いいえ」ですただし、サーバーからデータを取得し、クライアントスクリプトが提供されたのと同じホストから送信するサーバープロキシの使用を検討することができます。

関連する問題