XMLHTTPRequest主要有两种服务器返回响应消息的格式responseText和responseXML,下面分别针对这两种返回方式使用jQuery实现ajax异步响应。我们以最简单的用户登录来举例。
第一种responseText格式:
login.jsp 代码
- <%@ page language="java" pageEncoding="gb2312"%>
- <%
- String userName = request.getParameter("userName");
- String password = request.getParameter("password");
- if(password.equals("longleg")&&userName.equals("thy")){
- out.print("OK");
- }else{out.print("error");}
- %>
上面的代码省略了数据库的调用,这里主要是要体现前台的调用。login.jsp返回的类型为text形式,正确时是“OK”,错误时是
“error”。
js 代码
- var userName;
- var password;
- var result;
-
-
- $(document).ready(function(){
- $("#load").hide();
- $("#success").hide();
- $("#error").hide();
- });
-
- $(document).ready(function(){
- $("#button").click(function(){
- $("#error").hide();
- $("#load").show("slow");
- userName = $("#userName").val();
- password = $("#password").val();
- $.ajax({type: "post",
- url: "login.jsp",
- dataType: "html",
- data: "userName="+userName+"&password="+password,
- success: function(result){
- var res = String($.trim(result));
- if(res=="OK"){
- $("#myTable").hide("slow");
- $("#success").show("slow");
- }else if(res=="error"){
- $("#error").show("slow");
- $("#load").hide("slow");
- }else{
- alert("返回异常");}
- }
- });
-
- });
-
- });
第二种responseXML格式:
在实际应用中返回的xml都是用servlet生成的,这里直接访问了已存在的xml。
login.xml 代码
- xml version="1.0" encoding="UTF-8" ?>
- <root>
- <status>
- <flag>001<!---->flag>
- <reason>登录成功
- <!---->reason>
- <status_temp>
- import javax.servlet.http.HttpServletRequest;import
- javax.servlet.http.HttpServletResponse;import
- org.apache.struts.action.ActionForm;import
- org.apache.struts.action.ActionForward;import
- org.apache.struts.action.ActionMapping;
- <!---->status_temp>
- <!---->status>
- <data>
- <count>0<!---->count>
- <!---->data>
- <!---->root>
响应是否成功主要是读取flag标签中的文本100为未成功,001为成功。
js 代码
- var userName;
- var password;
- var result;
-
-
- $(document).ready(function(){
- $("#load").hide();
- $("#success").hide();
- $("#error").hide();
- });
-
-
- $(document).ready(function(){
- $("#button").click(function(){
- $("#error").hide();
- $("#load").show("slow");
- UserName = $("#userName").val();
- PassWord = $("#password").val();
- $.ajax({
- type: "post",
- url: "login.xml",
- dataType: "xml",
- data: "yhdh="+UserName+"&password="+PassWord,
- success: function(result){
- var statusObject = $("status",result);
- var flagObject= $("flag",status);
- var temp = flagObject.text();
- var flagText= $.trim(temp );
- if(flagText=="001"){
- $("#myTable").hide("slow");
- $("#success").show("slow");
- }else if(flagText=="100"){
- $("#error").show("slow");
- $("#load").hide("slow");
- }else{
- alert("请求异常");
- }
-
- }
-
- });
- });
-
- });
上面对于xml解析使用的是jQuery的遍历对应匹配,在里面也可以使用常用的dom解析方式:
js 代码
- var userName;
- var password;
- var result;
-
-
- $(document).ready(function(){
- $("#load").hide();
- $("#success").hide();
- $("#error").hide();
- });
-
-
- $(document).ready(function(){
- $("#button").click(function(){
- $("#error").hide();
- $("#load").show("slow");
- UserName = $("#userName").val();
- PassWord = $("#password").val();
- $.ajax({
- type: "post",
- url: "login.xml",
- dataType: "xml",
- data: "yhdh="+UserName+"&password="+PassWord,
- success: function(result){
- var yourStatus = result.getElementsByTagName("flag")[0].firstChild.nodeValue;
- if(yourStatus=="001"){
- $("#myTable").hide("slow");
- $("#success").show("slow");
- }else if(yourStatus=="100"){
- $("#error").show("slow");
- $("#load").hide("slow");
- }else{
- alert("请求异常");
- }
-
- }
-
- });
- });
-
- });
分享到:
相关推荐
在这个“jquery ajax 实现登录”的示例中,我们将深入理解如何利用 jQuery 的 AJAX 功能来构建一个用户登录系统,实现无刷新验证。 首先,我们需要了解 AJAX(Asynchronous JavaScript and XML)的基本原理。AJAX ...
综上所述,这个项目实例展示了如何利用SSH框架处理后端业务逻辑,通过jQuery AJAX实现前后端的实时通信,从而实现搜索自动补全功能,提供类似于百度搜索的用户体验。这对于提升Web应用的互动性和用户满意度具有重要...
**jQuery AJAX实现的RSS阅读器** 在Web开发中,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理以及AJAX交互。AJAX(异步JavaScript和XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况...
Jquery Ajax 实现自动填充地址。
这个例子展示了如何在ASP.NET Web API中使用jQuery AJAX实现文件上传的基本流程。客户端通过AJAX发送文件到服务器,服务器接收文件并进行相应的处理。注意,实际应用中还需要考虑错误处理、文件大小限制、安全问题...
在本文中,我们将深入探讨如何使用Jquery Ajax技术来实现一个简易计算器。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。结合Jquery库,我们可以...
jquery Ajax实现Select动态添加数据,具体内容如下 1.背景 最近在工作中,遇到了一个关于select的问题。一般情况下,select下拉框中的数据都是固定的或者直接在jsp中读取列表值显示。但是,这次要实现select与别的...
该资源包含了一个使用jquery ajax实现的省市二级联动的简单demo,简单易懂,可以参考博客:http://blog.csdn.net/mockingbirds/article/details/46842327
本文主要介绍如何使用php和jQuery ajax技术实现网页数据的实时刷新显示。具体来说,就是通过JavaScript的定时器,每隔一定时间就向服务器发送请求,获取最新的数据,然后在前端页面上实时更新这些数据,以实现数据的...
本文实例讲述了PHP结合jquery ajax实现上传多张图片,并限制图片大小操作。分享给大家供大家参考,具体如下: php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $...
在网页开发中,jQuery AJAX 是一种非常常用的技术,它允许我们实现异步数据交互,无需刷新整个页面即可从服务器获取或发送数据。本教程将详细讲解如何使用 jQuery AJAX 实现搜索功能。 首先,理解 AJAX...
通过 jQuery,开发者可以轻松地实现 AJAX 功能,而无需了解底层的 XMLHttpRequest 对象。 #### 二、示例代码分析 在提供的代码片段中,可以看到两个函数:`doload1` 和 `doload2`,它们都使用了 jQuery 的 AJAX ...
本文将详细介绍使用jQuery AJAX实现三种不同方式的前后台数据传输,以及如何处理界面内容的传值和返回值。 1. **基本的AJAX调用** jQuery提供了`$.ajax()`方法,它是所有其他AJAX功能的基础。例如,我们可以使用...
在本文中,我们将深入探讨如何使用jQuery实现一个基于Ajax的文本框自动补全功能,以及相关的`autocomplete`插件的完整实例。这个功能在许多Web应用程序中非常常见,它能够提高用户输入的效率和用户体验。 首先,让...
本篇文章将深入探讨jQuery AJAX分页的原理与实践,通过具体的实例来展示如何实现炫酷的分页功能。 首先,理解jQuery AJAX的核心概念。AJAX允许我们在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容。...
在jQuery中,`.ajax()`函数是实现这一功能的主要工具。例如,当用户点击菜单中的某个链接,可以通过Ajax请求服务器获取新数据,然后使用`.html()`或`.append()`方法更新相应区域的内容,从而实现页面的局部刷新,...
Ajax(异步JavaScript和XML)技术是实现这一目标的关键工具之一,而jQuery库则通过简化JavaScript的复杂性,让开发者更容易地利用Ajax功能。本篇文章将深入探讨如何结合Ajax和jQuery来实现无刷新效果。 首先,Ajax...
本文主要介绍的是如何利用jQuery的Ajax技术配合kkpager插件实现网页上的数据分页功能。kkpager是一个基于jQuery的分页插件,可以在不刷新页面的情况下通过Ajax异步加载数据,实现动态分页。以下将详细解析标题和描述...