2017-02-12 72 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,...