-1

我正在使用 Ajax 来提交这个。所有以box结尾的变量都是全局的。

不是完整的代码,请放心 init 等其他部分正在工作。

function begin() {
    if (confirm("Are you sure you want to proceed. This is completely up to you and all consequences go towards you!!"))
    {
        var usernameName = usernameBox.getAttribute("name");
        var passwordName = passwordBox.getAttribute("name");
        var hiddenName = hiddenBox.getAttribute("name");
        var username = usernameBox.value;
        var password = passwordBox.value;
        var hidden = hiddenBox.value;
        if (username !== "" && password !== "")
        {
            var http = new XMLHttpRequest();
            http.open("POST", "<?php echo $url_base, $action?>");
            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            http.onreadystatechange = function()
            {
                console.log(http.readyState + " " + http.status);
                if (http.readyState == 4 && http.status == 200)
                {
                    alert(http.responseText);
                }
                else
                {
                    alert("We had an error!!!");
                }
            }
            var query = hiddenName + "=" + hidden + "&" + usernameName + "=" + username + "&" + passwordName + "=" + password;
            //var query = usernameName + "=" + username + "&" + passwordName + "=" + password;
            console.log(query);
            http.send(query);
        }
        else
        {
            alert("don't be a fool fill out the info");
        }
    }
    else
    {
        alert("No refunds!!");
    }
}

表格如下。当我使用提交而不是onclick然后使用 Ajax 时,此表单完美地工作,任何特定的原因。它可能是表单名称。如果您想知道,我无权访问服务器。

<form name="signin_form" action="<?php echo $url_base,$action?>" method="post">
<input id='hidden' type="hidden" name="loginPage" value="student">
<label>Username <input id='userid' size="25" name="student_userid" tabindex="0"><br/></label>
<label> Password<input id='password' type="password" size="25" name="student_password"></br></label>
<input id='submit' style="COLOR: #6373b5" type="button" value="Sign In" width="100px" onclick="begin();">
</form>
4

1 回答 1

0

我在您的代码中没有看到任何特别错误的地方。表单名称无论如何都不会传递。

您是否检查以确保请求与http://www.fiddler2.com/fiddler2/http://www.charlesproxy.com/相同?这些工具会自动在您的计算机上创建本地代理服务器,以在 Web 请求和响应发生时捕获并显示它们。只需启动该工具,然后在浏览器中尝试请求,您就会看到原始请求/响应对。

确保URL、标头和正文匹配。

XHR可能正在添加一些额外的标头,并且服务器代码正在根据它们做一些不同的事情。

于 2013-02-09T03:21:33.360 回答