兄弟姐妹们:我想用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>

解决方案 »

  1.   

    var url = "http://10.145.55.55:8080?user=username&pass=password";
    xmlHttp.open("GET", url, true);
      

  2.   

    cronuz(cronus):
    这样可以吗??服务器知道传过来的user和pass就分别是用户名和密码吗,试试看~~~
      

  3.   

    跟普通的URL带参数一样的,看看我的AJAX代码你就知道了,var xmlHttp;
    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);
        }}
      

  4.   

    取的时候也超级简单,
    String str = request.getParameter("q");
    这样就可以了.
      

  5.   

    可能我的表达有问题。
    是要做Windows的域验证啦,就象在运行出输入\\10.142.50.188,在一个腾出窗口中输用户名和密码一样,用Ajax来把用户名和密码带过去给一个服务器,来实现域验证。
      

  6.   

    cronuz(cronus) ( )    var url = "http://10.145.55.55:8080?user=username&pass=password";
    xmlHttp.open("GET", url, true);
      
    這種方式可以的
     
      

  7.   

    问题解决了!
    解决办法就是我发的那段源代码,出错原因是当时没有测试环境,所以误以为
    xmlHttp.open("GET", "http://10.145.55.55:8080", true,"user","password");
    不能做Windows域认证,其实是可以的。
    给分咯!
    谢谢各位关注!