我遇到了问题。我正在尝试使用表单的onsubmit ='function();'从表单发送get请求和ajax。
<html>
<head>
<script type='text/javascript'>
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
window.alert("readystate change: " + xmlhttp.readyState + " , " + xmlhttp.status);
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById('adminPanel').innerHTML = xmlhttp.responseText;
}
}
function submit_password(){
xmlhttp.open("GET","./src/admin_pass.php");
xmlhttp.send();
}
</script>
</head>
<body>
<form onsubmit='submit_password();'>
<input type='password' placeholder='PASSWORD'>
</form>
<div id='adminPanel'>
</div>
</body>
</html>
<?php
echo "test text";
?>
当我使用表单提交来自函数内的调用时,我得到状态= 0错误。如果我删除该函数并让所有内容立即运行它执行得很好。为什么是这样?我一直在谷歌搜索一段时间,并没有找到做我想做同样事情的例子。我最终可能会最终使用jQuery的ajax函数,但我真的想避免将它包含在内。
编辑:好的,所以我能够找到的是XMLhttprequest status = 0表示存在http连接错误。所以我的网址可能有问题吗?我不认为是这种情况,因为我的结构看起来像这样:
root
src
admin_pass.php
我真的需要把http:// localhost / src / admin_pass.php?我以前在测试工作中使用过相对网址,很好。
编辑:添加完整示例
固定:
老实说,我不知道为什么要解决这个问题。我从一些回复中得知,问题可能在于使用表单。我认为这是不必要的。<html>
<head>
<title>Admin Page</title>
<script type='text/javascript'>
function submit_password(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
window.alert("readystate change: " + xmlhttp.readyState + " , " + xmlhttp.status);
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById('adminPanel').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","./src/admin_pass.php",true);
xmlhttp.send();
}
function check_enter(e){
if(e.keyCode == 13){
submit_password();
}
}
</script>
</head>
<body>
<input id='password' type='password' placeholder='PASSWORD PLEASE' onkeyup='check_enter(event);'>
<div id='adminPanel'>
</div>
</body>
</html>
答案 0 :(得分:0)
不要将其声明为全球。 请尝试使用上面的代码。
<script type='text/javascript'>
function submit_password(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
window.alert("readystate change: " + xmlhttp.readyState + " , " + xmlhttp.status);
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById('adminPanel').innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","./src/admin_pass.php");
xmlhttp.send();
}
</script>
答案 1 :(得分:0)