Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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_Xml_Http - Fatal编程技术网

Javascript URL中的用户名和密码

Javascript URL中的用户名和密码,javascript,xml,http,Javascript,Xml,Http,我试图加载一个要求输入用户名和密码的XML文件 我正在使用的代码如下所示,我正在尝试在URL中发送用户名和密码: xmlhttp.open("POST","http://admin:admin@192.168.0.5/myfile.xml",false); 我的页面的完整代码如下所示: <html> <body> <textarea id="test1" name="test1" cols="90" rows="30"> XML file will be

我试图加载一个要求输入用户名和密码的XML文件

我正在使用的代码如下所示,我正在尝试在URL中发送用户名和密码:

xmlhttp.open("POST","http://admin:admin@192.168.0.5/myfile.xml",false);
我的页面的完整代码如下所示:

<html>
<body>

<textarea id="test1" name="test1" cols="90" rows="30">
XML file will be displayed here
</textarea><br>

<script type="text/javascript">

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }


  xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("test1").value=xmlhttp.responseText;
     } else
     {
     alert('Panel not communicating.Reason: '+xmlhttp.status);
     }
   }

xmlhttp.open("POST","http://admin:admin@192.168.0.5/myfile.xml",false);
xmlhttp.send();

</script>
</body>
</html>

XML文件将显示在这里

if(window.XMLHttpRequest) {//IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); } 其他的 {//IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数() { if(xmlhttp.readyState==4&&xmlhttp.status==200) { document.getElementById(“test1”).value=xmlhttp.responseText; }否则 { 警报(“面板不通信。原因:”+xmlhttp.status); } } open(“POST”http://admin:admin@192.168.0.5/myfile.xml”,假); xmlhttp.send();

有人知道我做错了什么吗?

有关类似的场景,请参见此问题。注意:有一个答案指出IE不支持URL中的凭据(正如您正在尝试的那样)。

首先,添加此函数以创建授权标头内容:

function make_base_auth(user, password)
{
  var tok = user + ':' + pass;
  var hash = Base64.encode(tok);
  return "Basic " + hash;
}
然后,调用函数并将返回值存储在单独的变量中:

var auth = make_basic_auth('admin', 'admin');
最后,将
auth
的值传递给
XMLHttpRequest
对象:

xmlhttp.setRequestHeader('Authorization', auth);
xmlhttp.send();


属性:

我通过以下操作使其工作:

更改:

xmlhttp.open("POST","http://admin:admin@192.168.0.5/myfile.xml",false); 
致:


你犯了什么错误?你确定远程服务器接受HTTP Basic Auth吗?那么,当你在浏览器窗口中键入URL时会发生什么情况?我没有收到任何错误消息,它只是在那里,但如果我从URL代码中删除用户名和密码,它将要求输入一个我可以手动输入的用户名和密码,并且工作正常,但我想自动完成。有什么想法吗?我想你需要在标题中传递它们,而不是URL。你这是什么意思??我不知道你那是什么意思
xmlhttp.open("POST","http://admin:admin@192.168.0.5/myfile.xml",false,"username","password");