【问题标题】:Http 401 querying RavenDB using jquery on AppHarborHttp 401 在 AppHarbor 上使用 jquery 查询 RavenDB
【发布时间】:2012-05-14 18:12:31
【问题描述】:

我在 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);
            }
        });

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

parsererror:jQuery162024808977324209974_1337018748684 未被调用

如何在 AppHarbor 中配置 RavenDB 以允许我的请求?或者我应该用 jQuery 随请求一起发送一些东西吗? (也许我应该发送我在 documentStore 中设置的 ApiKey?)如果对于某些查询我需要授权,但对于其他我不需要,我应该如何处理?

【问题讨论】:

    标签: jquery ravendb appharbor


    【解决方案1】:

    我不会从 jQuery 直接连接到您的 RavenDB 实例。您需要传递您的 API 密钥,然后将其暴露在您的公共 javascript 文件中以供任何人连接。

    在您的应用中创建一个 API 端点并点击它,让它运行查询并为您返回结果。

    【讨论】:

      【解决方案2】:

      您肯定需要发送身份验证,特别是 API 密钥 described here。我不熟悉 RavenDB 用于身份验证的方案,但您可以查看 source code

      不过,在公共 javascript 文件中包含 API 密钥是个坏主意。

      【讨论】:

      • 我使用了指定的 API 密钥,这就是我如何初始化并在 MVC 中进行第一个查询...我现在感兴趣的是如何发送 API 密钥或类似的东西使用 jquery...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多