0

jQuery または XMLHttpRequest から amazon AWS セキュリティ トークンを取得する際に不運に見舞われました。jQueryやXmlHttpRequestからHTTP GETを送信すると「Origin http:// MY_IP is not allowed by Access-Control-Allow-Origin.」となるのですが、同じURLをブラウザに貼り付ければ問題ありません。

私のコード:

var url_ = "https://sts.amazonaws.com/?Action=GetSessionToken" +
            "&DurationSeconds=3600" +
            "&AWSAccessKeyId=" + AccessKeyId +
            "&Version=2011-06-15" +
            "&Timestamp=" + encode(timestamp) +
            "&Signature=" + encode(hash) +
            "&SignatureVersion=2&SignatureMethod=HmacSHA256";
$.get(url_, function(data) {
alert("response: "+data);
});

私のヘッダー:

応答ヘッダー
Accept-Ranges バイト 年齢 198
接続
キープアライブ コンテンツ

3739 17:39:28 GMT Proxy-Connection Keep-Alive サーバー Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.10 with Suhosin-Patch






Request Headers
Accept text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
DNT 1
Host MY_IP
If- Modified-Since Mon, 25 Jun 2012 17:13:16 GMT
If-None-Match "48c127c-ea2-4c34f18fe6300"
Proxy-Connection keep-alive
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0 ) Gecko/20100101 Firefox/12.0

ブラウザーのヘッダー (ブラウザーで URL を使用する場合)

応答ヘッダー
Content-Length 808
Content-Type text/xml
Date Mon, 25 Jun 2012 17:31:54 GMT
x-amzn-RequestId a854ff13-beeb-11e1-b3ac-0147da731d96

リクエスト ヘッダー
Accept text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
接続キープアライブ
DNT 1
ホスト sts.amazonaws.com
ユーザーエージェント Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:12.0) Gecko/20100101 Firefox/12.0

http://www.html5rocks.com/en/tutorials/cors/からいくつかのコードを試しましたが、うまくいきませんでした

どんな助けでも大歓迎です

4

1 に答える 1

1

あなたは少し前にその質問をしました、あなたはすでにあなたの答えを見つけたかもしれません、しかし誰かがこの質問への答えを探しているなら、ここにあります:

Access-Control-Allow-Originは、JavaScriptを実行しているWebページのドメイン外にあるリクエストを実行する場合のXMLHttpRequestのセキュリティ機能です。

たとえば、Webページhttp://foo.com/index.htmlがhttp://bar.com/query?a=bに対してXMLHttpRequestリクエストを実行している場合、bar.comのサーバーはAccess-Control-Allowを配置する必要があります-クロスドメインリクエストが許可されることを指定するための応答ヘッダーのオリジン。

残念ながら、Amazon AWSは応答ヘッダーにAccess-Control-Allow-Originを提供していないため、この手法を使用してアクセスすることはできません。

AWSで機能する唯一の手法は、フラッシュを使用してXMLHttpRequestをプロキシすることですが、これはフラッシュがインストールされているデバイス(iphoneまたはipadなし)でのみ機能します。

于 2012-08-26T00:03:27.370 に答える