我开始使用API刷新页面上的数据。因此,第一部分是使用基于表单的身份验证进行身份验证。所以我有这个:
<html>
<head>
<script type="text/javascript">
function CallWebAPI()
{
var request = new XMLHttpRequest(), data = 'username=admin&password=admin';
request.open('POST', 'https://localIP:8443/api/users/_login', true)
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
request.setRequestHeader("Accept", "application/xml")
request.onreadystatechange = function()
{
// D some business logics here if you receive return
//if(request.readyState === 4 && request.status === 200) {
console.log(request.responseText);
//}
}
request.send(data);
}
</script>
</head>
<body>
<div>
<div id="response">
</div>
<input type="button" class="btn btn-primary" value="Call Web API" onclick="javascript:CallWebAPI();" />
</body>
</html>
因此,从以上所述,在控制台浏览器中,我将返回正确的身份验证消息,如下所示:
成功
因此,我现在要登录后再运行另一个函数来检索数据,但它似乎重置为“未经授权”。我所做的就是创建另一个功能完全相同的功能,只是它是一个GET而不是POST,并添加了另一个按钮来测试它。但是它一直返回401:未经授权。我是按照错误的顺序执行操作吗?
我插入第二个这样的函数:
function getChannelStats()
{
var stats = new XMLHttpRequest();
stats.open('GET', 'https://localIP:8443/api/channels/statistics?channelId=f237ae66-6c5b-4ffa-9396-0721eb575184', true)
stats.setRequestHeader("Accept", "application/xml")
stats.onreadystatechange = function()
{
// D some business logics here if you receive return
//if(request.readyState === 4 && request.status === 200) {
console.log(stats.responseText);
//}
}
stats.send();
}
request.send(data);
}
并添加对该功能进行分类的另一个按钮以获取responseText。我期望其中包含各种数字的xml消息。但是,当我尝试运行它时,它要求我进行身份验证-就像它没有保留它一样?