Aaron
Aaron

Reputation: 3649

Username and Password in URL

I am trying to load an XML file that asks for a username and password.

The code I'm using is as follows that I am trying to send the username and password in the URL:

xmlhttp.open("POST","http://admin:[email protected]/myfile.xml",false);

The full code of my page looks like this:

<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:[email protected]/myfile.xml",false);
xmlhttp.send();

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

Anyone know what I am doing wrong?

Upvotes: 1

Views: 10285

Answers (3)

Aaron
Aaron

Reputation: 3649

I ended up getting it working by doing the following:

Change:

xmlhttp.open("POST","http://admin:[email protected]/myfile.xml",false); 

To:

xmlhttp.open("POST","http://admin:[email protected]/myfile.xml",false,"username","password");

Upvotes: 1

Ja͢ck
Ja͢ck

Reputation: 173572

First, add this function to create the authorization header contents:

function make_base_auth(user, password)
{
  var tok = user + ':' + pass;
  var hash = Base64.encode(tok);
  return "Basic " + hash;
}

Then, call the function and store the return value in a separate variable:

var auth = make_basic_auth('admin', 'admin');

Lastly, pass the value of auth to the XMLHttpRequest object:

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

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

Upvotes: 1

dbrin
dbrin

Reputation: 15673

See this question for a similar scenario. How to use Basic Auth with jQuery and AJAX? Note one answer states that IE does not support credentials in a URL (as you are attempting to do).

Upvotes: 0

Related Questions