问题提出:利用ajax请求来验证注册时选择的登录名是否已经被注册,问题是每次都会出现未注册,即使是数据库中已经存在有此登录名。
后台程序:
@RequestMapping(value = "duplicate", method = RequestMethod.GET, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<Object> duplicate(@RequestParam(value = "loginName") String loginName) { try { UserDto userDto = developerService.findByLoginName(loginName); if (userDto == null) { userDto = new UserDto(); userDto.setLoginName(loginName); return new ResponseEntity(userDto, HttpStatus.OK); } else { return new ResponseEntity(userDto, HttpStatus.OK); } } catch (CoreException e) { logger.error(e.getMessage()); e.printStackTrace(); return new ResponseEntity(null, HttpStatus.INTERNAL_SERVER_ERROR); } }
后台请求接口:
url: "${ctx}/developer/duplicate",
约定格式:application/json
传输数据:
data: {"loginName": loginName},
验证登录名是否合法:
合法才提交请求验证登录名是否已注册,否则登录名不合法不能请求服务。
function checkLoginName(loginName){ if(......){ ......... return false; }else if(duplicate(loginName)==true){ .......... return false; }else{ ....... return true; } }
当请求到检验是否重名的函数duplicate(loginName)时:
function duplicateLoginName(loginName) { var dup = false; $.ajax({ type: "GET", url: "${ctx}/developer/duplicate", contentType: "application/json", dataType: "json", data: {"loginName": loginName}, beforeSend: function () { $("#loginNameTips").text("正在验证...").css("color", "red"); }, error: function (data, XMLHttpRequest) { $("#loginNameTips").text("×验证失败:").css("color", "red"); }, success: function (data) { if (data.id == null) dup = false;//未重名 else dup = true;//重名 } }); return dup; }
理想结果:若重名,则该函数返回false,否则返回true
实际结果:如果重名,会执行dup=true,不重名,执行dup=false,但是返回的dup始终是初始化的值false,结果是无论重名与否,结果都显示不重名,为什么呢?
原因分析:ajax默认是异步传输,也就是说,方法并没有等待 success:function(data) 回调函数执行完,就已经向下执行了。这就是dup一直未初始化值false的原因所在。
解决办法:利用同步传输,添加上async:false即可,
相关推荐
实例33 删除会话中已注册变量 实例34 数据编码 实例35 简单购物车 第5章 PEAR和正则表达式实例 实例36 PEAR管理器安装及PEAR包常见操作 实例37 HTML QuickForm完成表单验证 实例38 Calendar仓ll建日历 实例39...
在 AppBuilder 混合应用程序中通过 Ajax 请求进行表单身份验证 一个 AppBuilder 混合示例,它使用 ASP.Net 表单身份验证来控制对启用 asmx ajax 的 Web 服务方法的访问。 当表单身份验证会话超时但仅在调用受保护的 ...
要查看负责拦截AJAX请求和同步数据的WordPress插件,。 使用应用 下载并安装该应用。 您可以使用beerkip登录名和beerkip密码登录,以浏览,创建或编辑自己的啤酒。 产品特点 用户身份验证是的。 登录后,您可以...
关键字:JSP,servlet,Ajax,jstl,JavaScript,注册,分页,购物车,增删改查 开发环境:Eclipse,MySQL 5.7,Tomcat 8.0 数据库表结构设计 图书表结构: 项目表结构: 订单表结构: userinfo表结构: 项目包...
第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和...
第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能(2) 网络用户通过关键字搜索博文功能(3) 最热门博客页面推荐浏览(4) 文章详细内容及相关评论显示(5) 博客...
06 Ajax功能之dataType和traditional 第58章 01 今日内容概要 02 Ajax补充之serialize 03 分页功能介绍 04 分页基础知识 05 Django内置分页 06 扩展Django内置分页 07 自定义分页组件 08 DjangoForm组件初识 第59...
10.1 观察实时的AJAX请求 213 10.2 识别应用中的JavaScript 214 10.3 从AJAX活动回溯到源代码 215 10.4 截获和修改AJAX请求 216 10.5 截获和修改服务器响应 218 10.6 使用注入数据破坏AJAX 220 10.7 使用注入XML破坏...
3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第 4 章 ASP.NET 的网页代码模型及生命周期 4.1 ASP.NET 的网页代码模型 ...
首页:登录框、注册框、表单验证、表单提交、级联选择器 作品列表页:分页器、修改作品名、删除作品 创建作品页:文件上传、上传进度显示、添加标签、删除标签 持续改进 将项目中涉及到的组件(级联选择器、分页器等
3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 ...
3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 ...
3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 ...
3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 ...
3.11.7 参数名 3.11.8 委托命名原则 3.12 小议设计模式 3.12.1 什么是设计模式 3.12.2 为什么要使用设计模式 3.12.3 改装现有类 3.13 小结 第4章 ASP.NET的网页代码模型及生命周期 4.1 ASP.NET的网页代码模型 4.1.1 ...
修复中文登录名用户无法正确保存视频签到的图片的BUG [2010-08-28] V3.3 正式版 build 20100831 特别重大更新-> 加入了视频签到功能,杜绝代签现象。你可以在“系统设置”->“签到设置”中决定是否开启它,以适应...