我一直在用邮递员测试一个API,我成功地调用了这个API。
当我试图通过javascript执行这个调用时,我会得到一个身份验证错误。
URL和授权与邮递员调用的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代码与邮递员或cURL之间有什么区别,是否有从JavaScript进行身份验证的方法?
更新
我发现使用授权键设置RequestHeader会将请求从get转到选项。这导致了错误。
发布于 2016-06-16 19:36:32
虽然Headers应该是不区分大小写的,但是您是否尝试过用标题大小写(Authorization)来设置标题的名称?
https://stackoverflow.com/questions/37866306
复制相似问题