我想要一个网页上的按钮,当按下该按钮时,相当于在浏览器中输入此网址并点击输入。
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>
答案 0 :(得分:1)
我认为你需要在AJAX对象上setRequestHeader
并提供身份验证标头,而不是在URL中传递它。请记住,服务器正在寻找标题
Authorization: Basic abc123==
(或某些传真)。
也许在使用AJAX请求提供凭据时查看this link?
另外,MDN采用setRequestHeader方法。