【问题标题】:Unable to authenticate rest call through XMLHttpRequest无法通过 XMLHttpRequest 验证休息调用
【发布时间】:2016-06-17 20:52:26
【问题描述】:

我一直在使用 postman 测试一个 API,我可以成功调用该 API。

当我尝试通过 javascript 执行此调用时,出现身份验证错误。

URL 和授权与邮递员调用的匹配,当我通过 curl 使用这些详细信息进行调用时,我能够检索到正确的数据。

 <script type="text/javascript">

var data = new FormData();
data.append("attributeId", "");
data.append("validFrom", "");

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http:/restpAPI/test");
xhr.setRequestHeader("authorization", "Basic asdsadsadjlafdkfjkldfj==");
xhr.setRequestHeader("cache-control", "no-cache");
xhr.setRequestHeader("postman-token", "dsadasd-asdsad-asd-asd-aasd");
xhr.send(data);


  </script>

当我使用此脚本运行本地网页时,我得到一个 401 表示未经授权。

JavaScript 代码和 postman 或 cURL 有什么区别,有没有一种从 JavaScript 进行身份验证的方法?

更新

我发现使用授权密钥设置 RequestHeader 会将请求从 get 转换为 options。这是导致错误的原因。

【问题讨论】:

    标签: javascript rest curl postman


    【解决方案1】:

    虽然 HTTP 标头应该不区分大小写,但您是否尝试过将标头的名称设置为标题大小写 (Authorization)?

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 2013-02-06
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多