問題が発生しています。フォームの onsubmit='function();' を使用して、フォームから get リクエストを送信しようとしています。そしてアヤックス。
<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";
?>
フォーム送信を使用して関数内から呼び出しを行うと、 status=0 エラーが発生します。関数を削除してすべてを一度に実行すると、正常に実行されます。どうしてこれなの?私はしばらくグーグルで検索してきましたが、私がやろうとしているのと同じことをする例は見つかりません。最終的にはjQueryのajax関数を使うことになると思いますが、これだけは絶対に入れないようにしたかったのです。
編集:わかりましたので、XMLhttprequest status=0 は http 接続エラーがあったことを意味するということだけを知ることができました。私のURLに何か問題があるのでしょうか?私が持っている構造は次のように見えるので、そうではないと思います:
root
src
admin_pass.php
実際に http://localhost/src/admin_pass.php を入力する必要がありますか? 以前のテスト作業で相対 URL を使用したことがありますが、問題ありませんでした。
編集:完全な例を追加
修繕:
正直なところ、なぜこれで問題が解決したのかわかりません。いくつかの回答から、問題がフォームの使用にある可能性があることがわかりました。不要と判断しました。
<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>