Javascript 如何使用给定的URL、用户名和密码获得响应?
我被要求从OLAP服务器加载下拉框,并提供服务器凭据。具体如下:Javascript 如何使用给定的URL、用户名和密码获得响应?,javascript,php,html,json,xmlhttprequest,Javascript,Php,Html,Json,Xmlhttprequest,我被要求从OLAP服务器加载下拉框,并提供服务器凭据。具体如下: 网址 HTTP方法-POST 授权用户:abc123 认证密码:api123 REQ/RES content type/charset=application/json;字符集=UTF-8 以下是我编写的代码: var hr = new XMLHttpRequest(); var url= "http://someIPAddress/getData"; alert("Before Posting data"); hr.ope
- 网址
- HTTP方法-POST
- 授权用户:abc123
- 认证密码:api123
- REQ/RES content type/charset=application/json;字符集=UTF-8
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、用户名和密码。我不会在这里透露实际数据)
我试图通过指定URL、POST和回调函数来使用XMLHttpRequest()
。如何在此处传递用户名和密码,以便它用数据响应您
当我尝试访问url时,它询问我用户名和密码:
我不知道如何将凭据附加到url,因为我没有指定值的确切键。你能帮忙吗。我想我错过了一些东西你试过像
http://user:pass@someIPAddress/getData
也许这就是您所需要的全部。我从未尝试过提交表单,但您可以检查您需要在请求中发送授权
标题。此标头值包含用户名,后跟“:”和密码,编码为base64:
hr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ':' + password));
btoa()
将字符串编码为base64。感谢您的快速响应,那么我应该定义btoa函数吗?此外,是否有100%的百分比保证用户名和密码仅以这种方式传递给服务器?btoa()
是标准的javascript函数。你不需要定义它。当你说像这样只传递给服务器时,你的意思是没有其他人可以看到它?如果是这样,那么答案是:取决于您是否使用HTTPS。如果您没有,任何人都可以看到请求,获取用户名和密码就像解码Authorization
头的base64字符串一样简单。但请注意,在浏览器登录对话框中插入用户名和密码时也会发生这种情况。如果您担心安全性,请始终使用HTTPS。仍然不会得到任何响应。没有调用onreadychange函数。没有错误,只是onreadychange函数没有被调用。嗯,您正在创建一个hr
对象,但正在ajaxReq
中调用send
。也许是这个?