Поддержание аутентификации с использованием API и xhr - PullRequest
0 голосов
/ 05 ноября 2018

Я справляюсь с использованием 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 с различными номерами в нем. Но когда я пытаюсь запустить его, он запрашивает у меня аутентификацию - как будто он не сохраняет его?

...