2016-11-19 12 views
2

このURLはgetおよびstageメソッドが適切に配備されたAWS API Gatewayにあります。 そして、aws documentに続いてCORSを有効にしました。Api GatewayはAccess-Control-Allow-Originを許可できません

CORSを有効にする手順は次のとおりです。

-Resource-> action-> enable CORS-> デフォルト設定 - > CORSを有効にしてCORSヘッダーを置き換えます。 CORS結果にエラーログはありません。

私は専門的なWeb開発者ではなく、私のブラウザはSafariです。 のXMLHttpRequestは「http://my.com」起源http://example.comをロードすることはできませんがアクセス制御 - 許可 - 起源によって許可されていません。ここで
照会する私のコードは、コンソールの印刷エラー

function request(idex) { 
var xmlHttp = new XMLHttpRequest(); 
xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.status == 200) 
     callback(xmlHttp.responseText); 
} 
xmlHttp.open("GET", "http://my.com", true); 
xmlHttp.send(null);} 

http://my.com」です。

javascriptリクエストまたはAPIゲートウェイのデプロイに間違いがある場合は、

+2

ローカルの仮想ホストとしてexample.comを設定しているため、AWSでCORSを設定する方法に間違いがあります。そしてそれをした後、私は次のようになります: 'XMLHttpRequestはhttp://my.com/をロードできません。 CORSポリシーによって 'http://my.com/'から 'https://my.com/'へのリダイレクトがブロックされました:要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません。したがって、Origin 'http://example.com'はアクセスが許可されていません。 – Pegues

+0

ありがとう、私はあなたのコメントが解決方法を見つけるのに役立つと思います。 – Cenxui

+0

私の喜び。がんばろう! – Pegues

答えて

2

試すことができます。

AWSドキュメントによると、CORSを有効にする前にapiをデプロイすることはできません。ヘッダーとCORSに関するすべての設定は、展開する前に設定する必要があります。 しかし、APIゲートウェイはこの設定をブロックしたり、エラーダイアログを表示しません。 API Gatewayは、設定プロセスが成功を示しても、ヘッダーを変更しません。

+1

AWSのバグのようですね。 – Huaying

2

クロス起点問題はサーバ側からですが、JavaScript側ではありません。サーバーが他のドメインからの要求を許可しない場合、クロスオリジンエラーをスローします。しかし、あなたはすでにawsインスタンスでCORSを追加したと言っています

javascriptはmy.comのサービスにしかアクセスしていないので、my.comサイトに適切なドメインマッピングを追加して、要求が別のドメインexample.com。サーバーが正しく構成されていない可能性があります。サーバーがヘッダーを要求しているかどうか試してください。サーバーに問題がないことを確認したら、テストするにはjavascriptを

からそれを試すなどSOAPUI、クロムでRECTクライアントプラグイン、などの任意の残りのクライアントに結果を参照するには

トライクロムのプラグインがありますあなたは、コンサルティング、それぞれの方法を試した後、私は次のようなエラーを発見した

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

+0

私が多くを学ぶために役立つ答えをありがとう! – Cenxui

関連する問題