使用API​​和xhr维护身份验证

时间:2018-11-05 13:00:50

标签: javascript jquery xmlhttprequest restful-authentication

我开始使用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消息。但是,当我尝试运行它时,它要求我进行身份验证-就像它没有保留它一样?

0 个答案:

没有答案
相关问题