[英]How to send an API get request using JavaScript with HTML variables
[英]How to authenticate an API Get request (html)
我试图弄清楚如何从使用身份验证用户和密码保护的 API 中获取数据。 我最终得到了以下代码,但我收到一条错误消息,阻止我实现目标
HTML 的代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="js/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var content = $('#content');
$('#btn').click(function () {
var username = $('#txtUsername').val();
var password = $('#txtPassword').val();
$.ajax({
type: 'GET',
url: '(the api url)',
dataType: 'jsonp',
headers: {
'Authorization': 'Basic ' + btoa(username + ':' + password)
},
success: function (data) {
$.each(data, function (index, val) {
var cdrVal = val.cdr_root[0].cdr;
content.append('<li>' + cdrVal + '</li>')
});
},
complete: function (jqXHR) {
if (jqXHR.status == '401') {
content.empty();
content.append('<li style="color:red">'
+ jqXHR.status + ' : ' + jqXHR.statusText + '</li>')
}
}
});
});
$('#btnClear').click(function () {
$("content").empty();
});
});
</script>
</head>
<body>
Username : <input type="text" id="txtUsername" />
Password : <input type="password" id="txtPassword" />
<br /><br />
<input id="btn" type="button" value="Authenticate" />
<input id="btnClear" type="button" value="Clear" />
<ul id="content"></ul>
</body>
</html>
错误信息:
jquery-3.5.1.min.js:2 GET (URL)&callback=jQuery3510613249910788189_1594517328830&_=1594517328834 net::ERR_ABORTED 400 (Bad Request)
这可能是什么原因造成的? 我在网上尝试了多种方法,但没有任何效果。 我怀疑它是 url 本身,因为我仍然可以通过 web 浏览器访问它。
beforeSend
可能是 go 的方式。 来自 jQuery 关于$.ajax()的文档:
使用它来设置自定义标题等。
不过,此问题可能与此问题重复: Use basic authentication with jQuery and Ajax
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.