Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用给定的URL、用户名和密码获得响应?_Javascript_Php_Html_Json_Xmlhttprequest - Fatal编程技术网

Javascript 如何使用给定的URL、用户名和密码获得响应?

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

我被要求从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.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
。也许是这个?