Js功能在Chrome中无法正常运行

时间:2017-01-29 13:15:16

标签: javascript html

我在html中有一个登录页面,我使用了Js函数来调用api。代码是

function submitdetails() {
    var username = document.getElementById("username").value;
    var password = document.getElementById("password").value;
    var params = JSON.stringify({ username: username, password: password });
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
            if (xmlhttp.status == 200){ 
                if(xmlhttp.responseText == "AdminLogin"){
                            // Redirect Url to Ldap Configuration settings page
                            window.location.href = "Configure.html";
                }else{
                     var cook = document.cookie;
                    document.getElementById("login_form").innerHTML = xmlhttp.responseText;
                    //document.getElementById("login_form").innerHTML = cook

                }
            }
                else{
                    document.getElementById("login_form").innerHTML = "Error"; 
                }
            }
        };
        xmlhttp.open("POST","http://127.0.0.1:8000/login/",true);     
        xmlhttp.send(params);
    }

以上代码在IE中运行得非常好。但是当我在Chrome中尝试它时,fucntion返回“else语句”,它会返回错误。

1 个答案:

答案 0 :(得分:0)

似乎这是一个CORS问题。您的后端可能有这样的条目:

Access-Control-Allow-Origin: *

这在IE上很好用,但在Firefox和Chrome上却没有。

  

Firefox和Chrome需要准确的域名规范   Access-Control-Allow-Origin标头。对于具有身份验证的服   这些浏览器不允许" *"在这个标题中。该   Access-Control-Allow-Origin标头必须包含值   客户端传递的Origin头。

因此您必须调整后端CORS设置。 这里是来自MDM

的CORS的标头定义