Как отправить GET запрос с логином (user: pass) с кнопки? - PullRequest
0 голосов
/ 11 августа 2011

Мне нужна кнопка на веб-странице, которая при нажатии делает ввод этого URL-адреса в браузере и нажимает клавишу ввода.

http://user:pass@www.example.com/example/button_24

Приведенный ниже код дает мнекнопка, но кажется, что она не хочет передавать учетные данные, firebug говорит следующее:

Доступ к ограниченному URI запрещен "код:" 1012

если я удаляю учетные данные, он говорит 401 Unauthorized

Заранее спасибо!

<html>
<head>
<script type="text/javascript">
function simpleAjax()
{
var xmlhttp;
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("Divku").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://user:pass@www.example.com/example/button_24",true);
xmlhttp.send();
}
</script>
</head>
<body>

<h2>AJAX</h2>
<button type="button" onclick="simpleAjax()">Request data</button>
<div id="Divku"></div>

</body>
</html>

новый код

<head> <meta http-equiv="refresh" content="30" >  </head>
<img alt="screenshot" src="http://a:a@www.example.com/example/screenshot.jpg">
<head>
<script type="text/javascript">
function simpleAjax()
{
var xmlhttp;
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("Divku").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.setRequestHeader('Authorization','Basic YTph');
xmlhttp.open("GET","http://www.example.com/example/button_24",true);
xmlhttp.send();
}
</script>
</head>
<body>
<br>
<button type="button" onclick="simpleAjax()">Volume Up</button>
<div id="Divku"></div>

</body>

1 Ответ

1 голос
/ 11 августа 2011

Я думаю, вам нужно setRequestHeader для объекта AJAX и предоставить заголовок Authentication вместо передачи его в URL.Помните, что сервер ищет заголовок

Authorization: Basic abc123==

(или некоторый факсимильный аппарат).

Возможно, проверьте эту ссылку при предоставлении учетных данных с запросами AJAX?

ТАКЖЕ, MDN для setRequestHeader метод.

...