2017-07-06 76 views
1

我想通過HTTP(已安裝readonlyrest插件)登錄到我的ElasticSearch。通過JavaScript將HTTP客戶端登錄到ElasticSearch(readonlyrest)

¿是否有任何方式使用HTML表單和JavaScript(Angular)代碼來完成這件事?

<form class="form-horizontal"> 
     <div class="form-group"> 
     <label class="control-label col-sm-2" for="email">Username:</label> 
     <div class="col-sm-10"> 
      <input class="form-control" ng-model="username" placeholder="Enter username"> 
     </div> 
     </div> 
     <div class="form-group"> 
     <label class="control-label col-sm-2" for="pwd">Password:</label> 
     <div class="col-sm-10"> 
      <input type="password" class="form-control" placeholder="Enter password" ng-model="password"> 
     </div> 
     </div> 
     <div class="form-group"> 
     <div class="col-sm-offset-2 col-sm-10"> 
      <button type="submit" class="btn btn-default" ng-click="login()">Submit</button> 
     </div> 
     </div> 
</form> 

登錄的代碼(我想保存登錄在瀏覽器未來行動):

$scope.login = function(){ 
console.log("Login: ", $scope.username, $scope.password) 

var clientId = "sample"; 
var clientSecret = "sample"; 

var authorizationBasic = window.btoa(clientId + ':' + clientSecret); 

var request = new XMLHttpRequest(); 
request.open('POST', "https://localhost:5601/omu/elasticsearch/_msearch", true); 
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
request.setRequestHeader('Authorization', 'Basic ' + authorizationBasic); 
request.setRequestHeader('Accept', 'application/json'); 
request.send("username=sample&password=sample&grant_type=password"); 

request.onreadystatechange = function() { 
    if (request.readyState === 4) { 
     alert(request.responseText); 
    } 
}} 

THX

回答

0

如果您使用基本身份驗證,嘗試包括憑證路徑

GET http:// user:password @elastichost:9200/endpoint

+0

使用readonlyrest,GET不需要用戶名和密碼。我想用Javascript登錄並在瀏覽器中保存該登錄信息以備將來使用。 –