2

我在 AppHarbor 中使用 RavenDB 来使用 jQuery 查询索引。我得到一个未经授权的 Http 401。如果我使用本地连接字符串,一切正常,我想我需要设置 RavenDB 以接受指向我在 Appharbor 的数据库的请求。我用于查询的 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);
            }
        });

我在浏览器中得到的错误是:

解析器错误: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 回答