ホームページ > 記事 > ウェブフロントエンド > ajaxを使用した非同期リクエストの検証
シーンの説明:
ログイン プロセスは誰もがよく知っていますが、登録したい場合は、ユーザー 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' が定義されていません
キャラクター)
→function checkUserid(userid){ // 情報を表示します
パラメータが宣言されていません
を入力できません
if (xmlHt tp.status == 200){ // HTTP 動作は正常です
alert("*****3");
説明HTTP動作が正常ではないので、HTTPステータスコードを返す方法は?
デバッグプロセス:
[html]ビュー plaincopy
if (xmlHttp.readyState == 4){ // データ返却完了
//アラート("*****2");
アラート(xmlHttp);
アラート("*****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
Web ページのエラーの詳細
メッセージ: 'userid' が定義されていません
ライン: 18
文字: 3
コード: 0
URI: http://local host/demo/14_Ajax/regist.htm
機能チェックUserid (userid){ // 情報を表示します
パラメータが宣言されていません
入力できません
if (xmlHttp.status == 200){ // HTTPは正常に動作します
アラート("*****3");説明:
HTTP
HTTP
ステータスコードを返すにはどうすればよいですか?デバッグプロセス:
[html]ビュー プレーンコピー
" *****2");if (
データが返されましたが、サーバーは指定されたリソース () を見つけることができず、ドキュメントが存在しません。そして
ServletMLDNフォーラム教師Li Qiは次のように答えました: それはあなたの
AJAX
サーブレット
は、コンパイルされた
class
ファイルをプロジェクトのWEB-INF/classesディレクトリに配置し、対応するパッケージに配置する必要があります。追加されていない場合、リソースは追加されません見つけてください
またこの問題があります:
Servlet.java ファイルを WEB-INF/classes フォルダー
に置く必要はありません。 ! ! ! ! ! ! 4f01b97d64aea37f699ead4eb7bd2bbdそれはどこに配置されますか?
その他コンパイルエラー:
java.lang.ClassNotFoundException: DBDRIVERClass.forName("DBDRIVER"
); // ドライバーをロードしません「」
表示効果:
以上がajaxを使用した非同期リクエストの検証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。