javascript – 如何通过获取请求传递凭据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何通过获取请求传递凭据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1806字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何通过获取请求传递凭据](/upload/InfoBanner/zyjiaocheng/820/06a2930d500c440d8feebe71545379c9.jpg)
当GET请求作为运行状况检查发送到RabbitMQ API时,我无法传递凭据以避免身份验证对话框.
如果我传递带有凭据的url
(例如http://user:pass@localhost:15672/api/aliveness-test/%2F)
它收到以下错误 –
rabbitCol.js:12 Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window': Request cannot be constructed from a URL that includes credentials: http://user:pass@localhost:15672/api/aliveness-test/%2F
at rabbitColChecking (rabbitCol.js:12)
at allReqInt (allReqInt.js:5)
at HTMLAnchorElement.onclick ((index):108)
如果我发送此请求而没有凭据内部的凭据,它实际上发送了请求,但是在UI中弹出了身份验证对话框,这很烦人,也不是很好.
请求如下 –
var fetch = require('node-fetch');
async function rabbitColChecking() {
let index;
const hostsRB = ['http://user:pass@host1:15672/api/aliveness-test/%2F', 'http://user:pass@host2:15672/api/aliveness-test/%2F', 'http://user:pass@host3:15672/api/aliveness-test/%2F', 'http://user:pass@host4:15672/api/aliveness-test/%2F];
let lengthVal = hostsRB.length;
for(let hostIndxRB = 0; hostIndxRB < lengthVal; hostIndxRB++) {
index = hostIndxRB;
let url = hostsRB[hostIndxRB];
fetch(url, {method: 'GET', credentials:'same-origin', redirect: 'follow', agent: null, headers: {"Content-Type": "text/plain"}, timeout: 5000}
).then(function (hostindxRB, res) {
handleLedResponseRB(res, hostindxRB);
}.bind(null, hostIndxRB));
await sleep(500);
}
}
发送此请求的触发器是某个HTML文件中的“onclick”函数.
我实际上已经尝试过我在网上看到的所有解决方案,但没有解决这个用例.
解决方法:
您可以使用Authorization标头通过fetch发送您的用户名和密码,如下所示:
fetch(url, {
method: 'GET',
credentials: 'same-origin',
redirect: 'follow',
agent: null,
headers: {
"Content-Type": "text/plain",
'Authorization': 'Basic ' + btoa('username:password'),
},
timeout: 5000
});
btoa是浏览器提供的功能.如果要在服务器端使用它,可以要求btoa npm模块完成工作.
内容总结
以上是互联网集市为您收集整理的javascript – 如何通过获取请求传递凭据全部内容,希望文章能够帮你解决javascript – 如何通过获取请求传递凭据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。