4

静的なHTMLページからAmazonCloudSearchをクエリする方法がわかりません。ドキュメントは優れていますが、ブラウザにURLをコピーして貼り付ける以外の例はありません。

私が欲しいのはS3のHTMLページなので、サーバー側のコードは許可されておらず、検索ボタンがクリックされたときにCloudSearchエンドポイントに起動して結果を返すテキストフィールドフォームを持つことができます

CloudSearchはJSONで応答するため、それを解析して結果のテーブルを作成する必要があります。

これまで、結果の保存されたJSONをローカルで処理し、Jqueryを使用してJSONファイルを読み取っていました。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>JSON Sample</title>
</head>
<body>
    <div id="placeholder"></div>
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    <script>
  $.getJSON('search.json', function(data) {

    var output="<ul>";
        for (var i in data.hit) {
            output+="<li>" + data.hit[i].id+ "</li>";
        }

        output+="</ul>";
        document.getElementById("placeholder").innerHTML=output;

        console.log(data);
  });
    </script>
</body>
</html>

これにより、レコードのIDがわかります。

しかし、URLをCloudSearchエンドポイントに変更しようとすると、データが返されません。読んで輪になって回ったのは、CORSのせいだと思います。

ただし、Amazonのドキュメントには、エンドポイントでHTTP GETを使用するように記載されていますが、それをHTMLページに組み込むにはどうすればよいですか。

そんな基本的な質問でごめんなさい

4

5 に答える 5

0

これをデモする angularjs プロジェクトを作成し、git ハブに追加しました。ドメインに適切にルーティングするには、CORS-anywhere が必要です。

https://github.com/tkntobfrk/amazon-cloudsearch-angular

プロジェクトはサジェスターを使用してドメイン データを検索し、入力フィールドにオートコンプリート データを入力します。bootstrap.ui の先行入力を使用します。

于 2015-03-23T00:13:05.520 に答える
0

CloudSearch は現在 CORS をサポートしていないため、お使いのブラウザーでは CloudSearch に接続できません。

サーバーを実行したくない場合は、リクエスト用のプロキシを見つける必要があります。これを見てください:

CORS または JSONP をサポートする無料の JSON プロキシ サーバーはありますか?

于 2013-02-11T22:23:39.237 に答える
0

これは役に立ちます。このような xml 構成ファイルを作成する必要があります。

http://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

于 2013-01-17T13:43:51.753 に答える