Мне было предложено загрузить выпадающие окна с сервера OLAP и предоставить учетные данные сервера. Они следующие
Ниже приведен код, который я написал:
var hr = new XMLHttpRequest();
var url= "http://someIPAddress/getData";
alert("Before Posting data");
hr.open("POST",url,true);
alert("Connection open");
document.getElementById("submitButton").disabled = true;
document.getElementById("status").innerHTML = "Loading...";
hr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
hr.onreadystatechange = function(){
alert("Entered callback function...");
if(hr.readyState == 4 && hr.status == 200){
var return_data = hr.responseText;
alert(return_data);
}
else{
alert("There is a connection issue");
var return_data = hr.responseText;
}
}
ajaxReq.send("POST",url,function populate(){
alert("Request received");
})
}
Это точные данные (за исключением URL, имени пользователя и пароля. Не раскрывая здесь настоящие данные)
Я пытаюсь использовать XMLHttpRequest()
, указав URL, POST и функцию обратного вызова. Как передать имя пользователя и пароль здесь, чтобы он отвечал вам данными
Когда я пытаюсь получить доступ к URL-адресу, он попросил меня ввести имя пользователя и пароль:
Я не знаю, как добавить учетные данные с URL-адресом, так как я не задал точный ключ для значений. Не могли бы вы помочь. Я думаю, что упускаю что-то
Вам нужно отправить заголовок Authorization
с запросом. Это значение заголовка состоит из имени пользователя, за которым следуют ':' и пароль, закодированные как base64:
hr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ':' + password));
btoa()
кодирует строку как base64.
Вы пробовали URI, например, http://user:pass@someIPAddress/getData
возможно, это все, что вам нужно. Я никогда не пробовал подавать форму, но вы можете проверить
btoa()
- стандартная функция JavaScript. Вам не нужно определять это. Когда вы говорите, что передали таким образом только на сервер , вы имеете в виду, что никто другой не может его увидеть? Если это так, то ответ: зависит от того, используете ли вы HTTPS. Если нет, то любой может увидеть запрос, и получить имя пользователя и пароль так же просто, как расшифровать строку base64 заголовкаAuthorization
. Но имейте в виду, что это также происходит, когда вы вводите свое имя пользователя и пароль в диалоговом окне входа в браузер. Если вы беспокоитесь о безопасности, всегда используйте HTTPS.