Ajaxで簡単なログイン効果を実現する原理
4432 ワード
Ajaxは、Webコンテンツを全体的にリフレッシュすることなく、ローカルWebリクエストサーバ情報を使用する非同期更新技術です.これにより、サーバに要求されるデータ量が大幅に減少し、ローカルな要求の失敗によってWebページ全体のロードに影響を及ぼすことはありません.
一.Ajax要求データの基本操作
Ajaxを使用して、既知のドキュメント「test.txt」からファイルを取得するとします.
1.基本操作
// 1. ajax
// ,
var ajaxObj = new XMLHttpRequest();
// 2. , ,
//
// ①. GET
// ②.
// ③. true ( )
// ④.
// ⑤.
ajaxObj.open("GET", "test.txt", true);
// ajaxObj.open("GET", "test.php", true); //
// 3.
ajaxObj.send();
// 4. ,
// onreadystatechange
ajaxObj.onreadystatechange = function() {
if (ajaxObj.readyState == 4) {
// http ,
if (ajaxObj.status >= 200 && ajaxObj.status <= 300) {
// , php echo
alert(ajaxObj.responseText);
};
};
};
このとき、test.txtファイルに書き込まれた内容を取得するためにファイルを実行します.
2.readyState説明
ajaxObj.readyState == 4
とは何ですか.ここには実は種の状態があります:0,1,2,3,4≪ステータス|Status|emdw≫
説明
0
初期化されていない状態:この段階でXMLHttpRequestオブジェクトが作成されたかどうかを確認し、openメソッドを使用して準備するために値が0の場合、オブジェクトがすでに存在していることを示します.そうしないとエラーが発生します.
1
読み込みステータス:XMLHttpRequestオブジェクトを初期化します.openメソッドを呼び出し、リクエストを設定し、send()メソッドを呼び出してサーバにリクエストを送信します.1は、サーバにリクエストを送信していることを示します.
2
ロード完了:このフェーズは、サーバから送信されたデータを受信したばかりで、このデータは元のデータであり、クライアントに直接使用することはできません.次のフェーズの準備をします.
3
≪解決|Resolution|ldap≫:この段階では、受信したサーバー側の応答データを解析します.すなわち,サーバ側応答ヘッダから返されるMIMEタイプに応じて,responseBody,responseTextまたはresponseXML属性でアクセス可能な形式にデータを変換し,クライアント呼び出しに備える.ステータス3は、データを解析していることを示します.
4
完了:この段階ですべてのデータがクライアントで利用可能なフォーマットに解析されたことを確認し、解析が完了したことを確認し、値が4であることはデータの解析が完了したことを示し、XMLHttpRequestオブジェクトの対応する属性でデータを取得することができる.
これらの場合,4のみがクライアントが操作可能であり,残りはコンピュータが独自に処理する.
3.パッケージ
しかし、このように使用するのは不便なので、このjsコードをJSファイルにカプセル化し、呼び出すたびにいいです.名前はAjax_パッケージ.js
// Ajax
function ajaxFn(url,succFn) { // succFn
var ajaxObj = new XMLHttpRequest();
ajaxObj.open("GET", url, true);
ajaxObj.send();
ajaxObj.onreadystatechange = function() {
if (ajaxObj.readyState == 4) {
if (ajaxObj.status >= 200 && ajaxObj.status <= 300) {
//
succFn(ajaxObj.responseText);
};
};
};
};
//
ajaxFn("test.txt",function (data) {
alert(data);
});
二.ログインが成功したかどうかを検証するインスタンス
1.HTMLファイル
:<input type="text" id="user"/><br/>
__ :<input type="password" id="pass"/><br/>
<button id="getTxt"> </button>
<div id="div1">
</div>
<script src="Ajax_ .js" type="text/javascript" charset="utf-8"/>
<script type="text/javascript">
var user = document.getElementById("user"),
pass = document.getElementById("pass"),
btn = document.getElementById("getTxt"),
div = document.getElementById("div1");
btn.onclick = function () {
// login.php
//
var url1 = "login.php?user="+user.value+"&pass="+pass.value;
ajaxFn(url1,function (data) {
div.innerHTML = data; //
})
}
</script>
</code></pre>
<p> : login.php , url1 , login.php 。</p>
<h2>2. php </h2>
<p> (1).PHP: / (2). php SQL , 。</p>
<pre><code><?php //
$user = $_GET["user"];
$pass = $_GET["pass"];
$link = mysql_connect("localhost", "root");
mysql_select_db("N_&_P", $link);
$re = mysql_query("select * from `N_&_P` where username = '{$user}' and password = '{$pass}'");
$obj = mysql_fetch_object($re);
if ($obj) echo " !";
else echo " !";
??>
</code></pre>
</article>
</div>
</div>