javascript - 通过 JavaScript 形式登录 HTTP 客户端到 ElasticSearch (readonlyrest)

标签 javascript html http elasticsearch authentication

我想通过 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);
    }
}}

谢谢

最佳答案

如果您使用的是基本身份验证,请尝试在路径中包含凭据

获取 http://用户:密码@elastichost:9200/端点

关于javascript - 通过 JavaScript 形式登录 HTTP 客户端到 ElasticSearch (readonlyrest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946605/

相关文章:

javascript - 如何使用一些前缀进行自动增量

json - 如何在 Laravel 中禁用 JSON 响应的分块编码?

javascript - 如何有条件地解构对象?

javascript - 使用 babel-polyfill 后,classList.replace() 不再是 IE11 中的方法或属性

javascript - 将 li 元素中的文本居中并带有图片背景

javascript - 将范围值从指令传递到 Controller - AngularJS

javascript - Modernizr 类不适用于 HTML

html - 图像/SVG 改变颜色?

c# - 如何在多个连接场景中显示枚举值?

http - 来自 Retrofit 的 POST 请求以意想不到的方式工作