Verwendung von jQuery zur Implementierung von Ajax-Operationen
Ich möchte die Ajax-Seite ohne Aktualisierungseffekt erreichen, aber die direkte Verwendung von Ajax-Code ist etwas mühsam, daher möchte ich jQuery verwenden, um dies zu erreichen. jQuery kapselt das Kernobjekt von Ajax, XMLHTTPRequest, gut ein. Daher ist die Verwendung sehr bequem.
Erstellen Sie zunächst den serverseitigen Code. Hier wird Servlet verwendet, um die serverseitige Datenverarbeitung zu implementieren
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 设置编码格式 resp.setContentType("text/html;charset=UTF-8"); // 创建输出对象 PrintWriter out = resp.getWriter(); // 得到请求参数 String name = req.getParameter("uname"); // 判断 if (name == null || name.length() == 0) { out.println("用户名不能为空!"); } else { // 判断 if (name.equals("cheng")) { out.println("用户名["+ name +"]已存在!请使用其他用户名!"); } else { out.println("用户名[" + name + "]尚未存在!您可以注册!"); } } }
<!-- 引入Javascript文件 --> <script type="text/javascript" src="js/jquery-1.2.6.js"></script> <script type="text/javascript" src="js/verify.js"></script>
<body> <center> 用户名:<input type="text" id="uname" name="uname" /> <br /> <input type="button" name="btnVerify" value="验证" onclick="verify()" /> <br /> <div id="result"> </div> </center> </body>
Hinweis: Es ist nicht erforderlich, ein Formular zu verwenden, um Daten im Ajax-Modus zu übermitteln, daher ist es nicht erforderlich, das
Erstellen Sie als Nächstes eine Datei „Verify.js“ und erstellen Sie die Methode „Verify()“ in der Datei, um den Nicht-Aktualisierungseffekt von Ajax zu erzielen. Dies ist der wichtigste Schritt in diesem Beispiel. Wenn Sie jQuery zur Implementierung von Ajax verwenden möchten, gibt es vier Schritte:
rufen Sie zunächst das Objekt über jQuery ab und ermitteln den Wert des Objekts wie folgt:
// 取得文本框对象,通过$()获取的所有对象都是jQuery对象 var jQueryObject = $("#uname"); // 获取文本框中的值 var userName = jQueryObject.val();
Für den zweiten Schritt
verwenden wir die get()-Methode von jQuery, um Daten wie folgt an den Server zu senden:
$.get("TestServlet?uname=" userName,null,callback);
Diese Methode gibt ein XMLHttpRequest-Objekt zurück. Der erste Parameter ist der Parameter, der im Allgemeinen direkt gesendet werden soll Der erste URL-Parameter ist im Allgemeinen null. Der dritte Parameter ist eine Rückruffunktion, nachdem der Server die Daten erfolgreich verarbeitet hat.
Für den dritten Schritt
sollten Sie eine Rückruffunktion erstellen, um die vom Server zurückgegebenen Daten wie folgt zu verarbeiten:
// 回调函数 function callback(data) { } 该回调函数有一个参数,该参数就是客户端返回的数据。 针对于第四步,再次利用jQueyr的选择器函数得到DIV层,将返回的数据显示在该层之上,如下: function callback(data) { /** * 第三步,接收服务器端返回的数据 */ // 将服务器端返回的数据动态的显示在页面上 var resultObject = $("#result"); resultObject.html(data); }
$.get("TestServlet?uname=" +$("#uname").val(),null,function(data){ $("#result").html(data); })
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //context.Response.Write("Hello World"); string name = context.Request.Params["name"].ToString().Trim(); if ("china".Equals(name)) { context.Response.Write("1");//1标志login success } else { context.Response.Write("0");//0标志login fail } }
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="js/jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $("#test").live("click", function() { //alert(0); $.ajax({ type: 'POST', url: 'Handler1.ashx', data: { "name": $("#name").val() }, success: function(data) { if (1 == data) alert('login success'); else alert('login fail'); } }); }); }); </script> </head> <body> <form id="form1" runat="server"> <div> <input type="text" name="name" id="name" /> <input type="button" name="test" id="test" value="validate" /> </div> </form> </body> </html>