2017-02-12 149 views
0

在我的后端,我想使用JavaScript API客户端刷新Algolia搜索索引(清除,更新,删除)。 https://www.algolia.com/doc/api-client/javascript/manage-indices/Algolia搜索:列表索引和添加对象的错误

我可以访问各自的索引和搜索作品。但是,listIndexes和所有类型的索引操作都不起作用。任何想法我忽略了(Algolia API相对较新)?

<script src="https://cdn.jsdelivr.net/algoliasearch/3/algoliasearch.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       console.log("ready!"); 
       var client = algoliasearch('XXXX', 'YYYY'); 
       var index = client.initIndex('rd_showcase'); 
       // index search works 
       index.search('image', function(err, content) { 
        console.log(content.hits); 
        console.log("search for image done"); 
       }); 
       index.search('image', function searchDone(err, content) { 
        console.log(err, content); 
       }); 

       // error: 403 forbidden 
       /* 
       client.listIndexes(function(err, content) { 
        console.log(content); 
       }); 
       */ 
       // error: 400 bad request 
       client.copyIndex('rd_showcase', 'rd_showcase_20170212', function(err, content) { 
        console.log(content); 
       }); 
      }); 
     </script> 

回答

1

从你张贴在这里我可以看到你想要从前端JS代码做它的代码 - 访问网站任何人都可以读取的代码。

出于安全原因,数据操作方法被禁用以用于前端代码。这些操作需要使用管理API密钥进行数据操作,并且向有权访问网站的任何人显示您的管理API密钥是一个安全问题。

要执行clear,listIndices和其他数据敏感操作,您需要从后端/服务器端执行此操作。如果你想使用JavaScript,你可以使用Node.js.如果你不关心该语言,你可以使用任何其他服务器端的语言,如PHP,Ruby,Java,...