2

AppHarbor で RavenDB を使用して、jQuery を使用してインデックスをクエリしています。HTTP 401 Unauthorized が表示されます。ローカル接続文字列を使用すると、すべて正常に動作し、Appharbor のデータベースを指す要求を受け入れるように RavenDB をセットアップする必要があると思います。クエリに使用する jquery は次のようになります (queryUrl は有効です)。

    function search(queryUrl) {            
        $.ajax({
            url: queryUrl,
            dataType: 'jsonp',
            jsonp: 'jsonp',                              
            success: function (data) {
                $("#companiesHolder").empty();                    

                $.each(data.Results, function() {
                    $("#companiesHolder").append("<li><hgroup class='title'><h2>" + this.Name + "</h2><h5>" + this.Email + "</h5></hgroup></li>");
                });                                           
            },
            error: function (error, stat, message) {
                alert(stat + ":" + message);
            }
        });

ブラウザに表示されるエラーは次のとおりです。

parsererror:jQuery162024808977324209974_1337018748684 は呼び出されませんでした

リクエストを許可するように AppHarbor で RavenDB を構成するにはどうすればよいですか? または、jQuery でリクエストと一緒に何かを送信する必要がありますか? (おそらく、documentStore に設定されている ApiKey を送信する必要がありますか?) 承認が必要なクエリと、そうでないクエリがある場合、これをどのように処理すればよいですか?

4

2 に答える 2

5

jQuery から直接 RavenDB インスタンスに接続することはありません。API キーを渡す必要があります。これにより、誰でも接続できるように公開された JavaScript ファイルに公開されたままになります。

アプリで API エンドポイントを作成してヒットすると、クエリが実行されて結果が返されます。

于 2012-05-15T03:25:37.717 に答える
2

認証、具体的にはここで説明されている API キーを一緒に送信する必要があります。私は RavenDB が認証に使用するスキームに精通していませんが、ソース コードをチェックアウトできます。

ただし、パブリック JavaScript ファイルに API キーを含めることはお勧めできません。

于 2012-05-14T20:07:56.913 に答える