簡體   English   中英

URL中的用戶名和密碼

[英]Username and Password in URL

我正在嘗試加載要求用戶名和密碼的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>

有人知道我在做什么錯嗎?

首先,添加此函數以創建授權標頭內容:

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();

署名: http : //coderseye.com/2007/how-to-do-http-basic-auth-in-ajax.html

有關類似情況,請參見此問題。 如何在jQuery和AJAX中使用基本身份驗證? 注意一個答案指出IE不支持URL中的憑據(如您正在嘗試的那樣)。

我通過執行以下操作最終使其工作:

更改:

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

至:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM