ホームページ  >  記事  >  ウェブフロントエンド  >  ajaxを使用した非同期リクエストの検証

ajaxを使用した非同期リクエストの検証

巴扎黑
巴扎黑オリジナル
2017-07-03 10:34:271532ブラウズ

シーンの説明:

ログイン プロセスは誰もがよく知っていますが、登録したい場合は、ユーザー ID を検出するこの操作は Ajax を通じて完了できるようにする必要があります。

テーブル構造:


<html>
<head><title>异步验证</title></head>
<body>
<script language="JavaScript">
	var xmlHttp;
	var flag;
	function createXMLHttp(){
		if (window.XMLHttpRequest){						// 创建XMLHttpRequest核心对象
			xmlHttp = new XMLHttpRequest()					// 使用FireFox内核
		}else {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");	// 使用IE内核的浏览器
		}
	}

	function checkUserid(userid){		// 显示信息
		createXMLHttp();	//
		// 设置请求,通过地址重写方式将userid传递到JSP中
		
		xmlHttp.open("POST","CheckServlet?userid="+userid);
		// 设置完请求后调用处理回调函数
		xmlHttp.onreadystatechange = checkUseridCallback;
		xmlHttp.send(null);	// 发送请求,不设置参数
		//document.getElementById("msg").innerHTML = "正在验证……";
				//alert("*******");

	}

	function checkUseridCallback(){	// 回调函数
		if (xmlHttp.readyState == 4){			// 数据返回完毕
			if (xmlHttp.status == 200){			// HTTP操作正常
				alert("*****8");
				var text = xmlHttp.responseText;// 接收返回内容
				if (text == "true"){
					flag = false;				// 无法提交表单
					document.getElementById("msg").innerHTML = "用户名ID重复,无法使用";
				}else {
					flag = true;				// 可以提交表单
					document.getElementById("msg").innerHTML = "恭喜!此用户ID可以注册";
				}
			}
		}
	}

	function checkForm(){	// 对表单判断能否进行提交操作
		return flag;
	}
</script>
	<form action="xxx.jsp" method="post" onsubmit="return checkForm()">
		用户ID:<input type="text" name="userid" onblur="checkUserid(this.value)"><span id="msg"></span><br>
		姓  名:<input type="text" name="name"><br>
		密  码:<input type="password" name="password"><br>
		<input type="submit" value="注册">
		<input type="reset" value="重置">
	</form>
</body>
<html>

Servlet.java (もちろんアクションとして設定することもできます。これは自分で設定した、必ずしも必要ではありません Servlet.java) サーブレット) ビュー plaincopy




Web ページのエラーの詳細



メッセージ: 'userid' が定義されていません


  1. ライン: 18

    キャラクター)
  2. →function checkUserid(userid){ // 情報を表示します

  3. パラメータが宣言されていません


を入力できません

if (xmlHt tp.status == 200){ // HTTP 動作は正常です

alert("*****3");

説明HTTP動作が正常ではないので、HTTPステータスコードを返す方法は?

デバッグプロセス:



[html]ビュー plaincopy


  1. if (xmlHttp.readyState == 4){ // データ返却完了

  2. //アラート("*****2");

  3. アラート(xmlHttp);

  4. アラート(xmlHttp.readyState) == 200){ //HTTP 動作は正常です

  5. アラート("*****3");Pxmlhttp.readyState == 4


    データは完了しましたが、サーバーは指定されたデータを見つけることができませんresource () ですが、ドキュメントは存在しません。そして

    Servletdebuggingが全く入っていないのはなぜでしょうか? ? ?
    MLDNフォーラム教師Li Qiは次のように答えました: それはあなたのAJAX送信パスに対応するリソースが存在しないことを意味します。 あなたの

    サーブレット

    は、コンパイルされたclassファイルをプロジェクトのWEB-INF/classes

    ディレクトリに配置し、対応するパッケージに配置する必要があります。追加されていない場合、リソースは追加されません見つかりますまたこの問題が発生しました: Servlet.java ファイルを

    WEB-INF/classes

    フォルダー

    に置く必要はありません! ! ! ! ! ! !

    4f01b97d64aea37f699ead4eb7bd2bbdそれはどこに配置されますか?

    その他

    コンパイルエラー:

    java.lang.ClassNotFoundException: DBDRIVER

    Class.forName("DBDRIVER"

    ); // ドライバーをロードしません 「」

    表示効果:

    /* http://blog.csdn.net/zhangze2/article/detail より転載s/79594 93 */




    [html]ビュー plaincopy


    1. Web ページのエラーの詳細

    2. メッセージ: 'userid' が定義されていません

    3. ライン: 18

    4. 文字: 3

    5. コード: 0

    6. URI: http://local host/demo/14_Ajax/regist.htm

    7. 機能チェックUserid (userid){ // 情報を表示します

    8. パラメータが宣言されていません

    9. 入力できません
    10. if (xmlHttp.status == 200){ // HTTPは正常に動作します

      アラート("*****3");

    説明:
    HTTP

    が正常に動作していないため、

    HTTP

    ステータスコードを返すにはどうすればよいですか?

    デバッグプロセス:

    [html]ビュー プレーンコピー

    " *****2");
    1. if (
    2. xmlHttp.status == 200) {//
    3. alert ("****** 3");

    4. データが返されましたが、サーバーは指定されたリソース () を見つけることができず、ドキュメントが存在しません。そして

      Servlet
    5. debuggingが全く入っていないのはなぜでしょうか? ? ?
    6. MLDNフォーラム教師Li Qiは次のように答えました: それはあなたの

      AJAX
    7. 送信パスに対応するリソースが存在しないことを意味します。

    8. あなたの

    サーブレット
    は、コンパイルされた

    class

    ファイルをプロジェクトの

    WEB-INF/classesディレクトリに配置し、対応するパッケージに配置する必要があります。追加されていない場合、リソースは追加されません見つけてください

    またこの問題があります:

    Servlet.java ファイルを WEB-INF/classes フォルダー

    に置く必要はありません。 ! ! ! ! ! ! 4f01b97d64aea37f699ead4eb7bd2bbdそれはどこに配置されますか?

    その他コンパイルエラー:

    java.lang.ClassNotFoundException: DBDRIVERClass.forName("DBDRIVER"

    ); // ドライバーをロードしません

    「」

    表示効果:

以上がajaxを使用した非同期リクエストの検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。