兄弟姐妹们:我想用Ajax做Windows身份验证,就是通过访问另一台服务器的域来验证登陆的用户是否是合法用户,需要象asp那样使用xmlhttp.open(GET,url,true,"username","password"),但好像不行,希望高手能解惑,谢谢!!
主要代码如下:
<script type="text/javascript">
var xmlHttp;function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function startRequest() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "http://10.145.55.55:8080", true,"user","password");
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
document.getElementById("results").innerHTML = xmlHttp.responseText;
}
}
}
</script>
xmlHttp.open("GET", url, true);
这样可以吗??服务器知道传过来的user和pass就分别是用户名和密码吗,试试看~~~
var text;
function showHint(str) {
try{
if (str.length > 0) {
text = str;
var url = "gethint.jsp?sid=" + Math.random() + "&q=" + str;
xmlHttp = GetXmlHttpObject(stateChanged);
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
} else {
document.getElementById("txtHint").innerHTML = "";
}
}catch(e){
alert("showHint:"+e.message);
}
}
function stateChanged() {
try{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
//document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
document.getElementById("txtHint").innerHTML = xmlHttp.responseText;
}
}catch(e){
alert("stateChanged:"+e.message);
}
}
function GetXmlHttpObject(handler) {
try{
var objXmlHttp = null;
if (navigator.userAgent.indexOf("Opera") >= 0) {
alert("This example doesn't work in Opera");
return;
}
if (navigator.userAgent.indexOf("MSIE") >= 0) {
var strName = "Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5") >= 0) {
strName = "Microsoft.XMLHTTP";
}
try {
objXmlHttp = new ActiveXObject(strName);
objXmlHttp.onreadystatechange = handler;
return objXmlHttp;
}
catch (e) {
alert("Error. Scripting for ActiveX might be disabled");
return;
}
}
if (navigator.userAgent.indexOf("Mozilla") >= 0) {
objXmlHttp = new XMLHttpRequest();
objXmlHttp.onload = handler;
objXmlHttp.onerror = handler;
return objXmlHttp;
}
}catch(e){
alert("GetXmlHttpObject:"+e.message);
}}
String str = request.getParameter("q");
这样就可以了.
是要做Windows的域验证啦,就象在运行出输入\\10.142.50.188,在一个腾出窗口中输用户名和密码一样,用Ajax来把用户名和密码带过去给一个服务器,来实现域验证。
xmlHttp.open("GET", url, true);
這種方式可以的
解决办法就是我发的那段源代码,出错原因是当时没有测试环境,所以误以为
xmlHttp.open("GET", "http://10.145.55.55:8080", true,"user","password");
不能做Windows域认证,其实是可以的。
给分咯!
谢谢各位关注!