我正在使用Ajax提交此内容。以框结尾的所有变量都是全局的。
不是完整的代码,请放心,其他部分如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!!");
}
}
表格如下。当我使用submit而不是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>
答案 0 :(得分:0)
我的代码中没有看到任何特别的错误。无论如何,表格名称都没有通过。
您是否检查过以确保请求与http://www.fiddler2.com/fiddler2/或http://www.charlesproxy.com/相同?这些工具会自动在您的计算机上创建本地代理服务器,以捕获和显示Web请求和响应。只需启动该工具,然后在浏览器中尝试该请求,您将看到原始请求/响应对。
确保URLs,标题和正文匹配。
XHR可能会添加一些额外的标头,服务器代码会根据它们执行不同的操作。