Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Post方法XMLHttpRequest强制登录对话框(IE问题)_Javascript_Internet Explorer_Xmlhttprequest - Fatal编程技术网

Javascript Post方法XMLHttpRequest强制登录对话框(IE问题)

Javascript Post方法XMLHttpRequest强制登录对话框(IE问题),javascript,internet-explorer,xmlhttprequest,Javascript,Internet Explorer,Xmlhttprequest,我们正在运行windows IIS 6,并使用它的本机功能,以windows身份验证作为登录方法来保护文件 它工作正常,只是当我试图从IE发布方法XMLHttpRequest时,我再次得到登录对话框,这导致请求失败。 奇怪的是Mozilla和Safari工作得很好 我是否可以对这些头文件做些什么,或者让IIS将其识别为同一个会话,而不提示重新登录 function ajaxQuery(method, url, params, asynchronous, readyFunction, is_don

我们正在运行windows IIS 6,并使用它的本机功能,以windows身份验证作为登录方法来保护文件

它工作正常,只是当我试图从IE发布方法XMLHttpRequest时,我再次得到登录对话框,这导致请求失败。 奇怪的是Mozilla和Safari工作得很好

我是否可以对这些头文件做些什么,或者让IIS将其识别为同一个会话,而不提示重新登录

function ajaxQuery(method, url, params, asynchronous, readyFunction, is_done) {
    if (asynchronous == null) {
        asynchronous = true;
    }
    //alert("URL: "+url);
    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) {
            readyFunction(xmlhttp.responseText);
            if (is_done) {
                is_done("ok");
            }
        }
    }
    if (method.toLowerCase() == "get") {
        url += "?" + params;
        params = null;
    }
    debug = url;
    xmlhttp.open(method, url, asynchronous);
    if (method.toLowerCase() == "post") {
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Content-length", params.length);
        xmlhttp.setRequestHeader("Connection", "close");
        debug = params.length;
    }
    xmlhttp.send(params);
}

检查返回的响应头。我们在一个(故意)返回401代码的应用程序上也遇到了同样的问题。IIS捕获了该代码并添加了WWW身份验证头,该头强制IE显示登录名。我们可以通过返回403来修复它。

哪种版本的internet explorer,以及哪种身份验证?基本?Internet Explorer 8、IIS 6 Windows 2003集成身份验证