javascript - 在 JavaScript 中向用户隐藏 Solr 服务器 URL

标签 javascript python typeahead.js bloodhound

我使用 Python 和 Django 的组合以及 JS 库 Bloodhound 和 typeahead 在网站上形成增量搜索框。到目前为止,我在 js 中包含了远程 Solr 服务器的 URL,以便 js 可以在其上触发查询,以在用户键入时填充搜索框。我想到的事情是,如果用户查看源代码和 JS 脚本,我可能不希望用户看到此 Solr URL。是否有可能做到这一点?也许有更好的方法来实现这一点...我复制了下面的相关代码,您可以看到 Solr 服务器的 URL 在脚本中可见:

// construct suggestion engine
var engine = new Bloodhound({
    datumTokenizer: function (datum) {
        return Bloodhound.tokenizers.whitespace(datum.title);
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {
        url: 'http://localhost:8983/solr/document_core/select?wt=json&q=%QUERY',
        wildcard: '%QUERY',
        filter: function (data) {
            return $.map(data.response.docs, function (suggestionSet) {
                return{
                    title : suggestionSet.title,
                    category : suggestionSet.category
                }
            });
        }
    }

});

非常感谢您的帮助!

最佳答案

您无法在客户端隐藏任何内容。从服务器端访问Solr,检查用户是否有权进行查询;然后将结果转发给客户端(如果您需要的话)。

关于javascript - 在 JavaScript 中向用户隐藏 Solr 服务器 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649481/

相关文章:

javascript - 从数组中删除特定数字

python - 创建新列 PySpark SQL - Python

python - 命名空间包有哪些注意事项

python - 将 CNN 过滤器权重可视化为 tensorflow 中的 numpy 数组

javascript - JQuery:不匹配的 Twitter Typeahead 功能

vue.js - Twitter typeahead.js 在 Vue 组件中不起作用

javascript - 在 CSS 中使用参数或现有变量

javascript - 如何在 AngularJs 服务中创建自定义事件

javascript - JavaScript 中的 "Variable"变量

php - Laravel 和 Typeahead.js : retrieve category name but submit its ID to the database?