分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

看到一个想收藏的的AJAX小列子

发布时间:2023-09-06 02:32责任编辑:郭大石关键词:暂无标签

用户登录的验证可以使用 form 表单提交,也可以使用 ajax 技术异步提交。

AJAX 即 Asynchronous Javascript And XML(异步 JavaScript 和 XML),是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。

这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

jQuery ajax() 方法法是 jQuery 底层 AJAX 实现。

ajax() 方法有几个重要参数:

 ?$.ajax({ ???????url: "detail.html", ?//发送请求的地址,String类型的参数 ???????data:{id:"id"}, ?????//发送到服务器的数据,Object或String类型的参数,如果已经不是字符串,将自动转换为字符串格式。 ???????type: "POST", ???????//请求方式,默认为GET,String类型的参数 ???????dataType:‘json‘, ????//预期服务器返回的数据类型,String类型的参数;可用类型有(xml,html,json,jsonp,text) ???????timeout:1000, ???????//请求超时时间,毫秒 ???????async: true, ????????// 默认为true,所有请求均为异步请求,Boolean类型的参数 ???????beforeSend:function(XMLHttpRequest){ ?//发送请求前调用的函数 ???????????????}, ???????complete:function(XMLHttpRequest, textStatus){ ?//请求完成后调用的回调函数(请求成功或失败时均调用) ???????????????}, ???????????????success:function(){ ?//请求成功后调用的回调函数 ???????????????}, ???????error:function(){ ?//请求失败时被调用的函数 ???????????????} ?});

示例:

验证用户登录前台代码

$("#loginBtn").click(function(){ ???var user = new Object(); ???user.loginCode = $.trim($("#loginCode").val()); ???user.password = $.trim($("#password").val()); ???????//前台的非空验证 ???if(user.loginCode == "" || user.loginCode == null){ ???????$("#loginCode").focus; ???????$("#formtip").css("color","red"); ???????$("#formtip").html("对不起,登录账号不能为空。"); ???}else if(user.password == "" || user.password == null){ ???????$("#password").focus; ???????$("#formtip").css("color","red"); ???????$("#formtip").html("对不起,登录密码不能为空。"); ???}else{ ???????$("#formtip").html(""); ???????//如果账号和密码都不为空,就进行 ajax 异步提交 ???????$.ajax({ ???????????type:‘POST‘, ?//提交方法是POST ???????????url:‘/login.html‘, //请求的路径 ???????????data:{user:JSON.stringify(user)}, //以JSON字符串形式把 user 传到后台 ???????????dataType:‘html‘, //后台返回的数据类型是html文本 ???????????timeout:1000, ?//请求超时时间,毫秒 ???????????error:function(){ ?//请求失败的回调方法 ???????????????$("#formtip").css("color","red"); ???????????????$("#formtip").html("登录失败!请重试。"); ???????????}, ???????????success:function(result){ ??//请求成功的回调方法 ???????????????if(result != "" && result == "success"){ ???????????????//若登录成功,跳转到"/main.html" ???????????????????window.location.href=‘/main.html‘; ???????????????}else if(result == "failed"){ ???????????????????$("#formtip").css("color","red"); ???????????????????$("#formtip").html("登录失败!请重试。"); ???????????????????$("#loginCode").val(‘‘); ???????????????????$("#password").val(‘‘); ???????????????}else if(result == "nologincode"){ ???????????????????$("#formtip").css("color","red"); ???????????????????$("#formtip").html("登录账号不存在!请重试。"); ???????????????}else if(result == "pwderror"){ ???????????????????$("#formtip").css("color","red"); ???????????????????$("#formtip").html("登录密码错误!请重试。"); ???????????????}else if("nodata" == result){ ???????????????????$("#formtip").css("color","red"); ???????????????????$("#formtip").html("对不起,没有任何数据需要处理!请重试。"); ???????????????} ???????????} ???????}); ???}});

验证用户登录后台代码

 ???/*@responseBody注解的作用是将 controller 的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到 response 对象的 body 区,通常用来返回 JSON 数据或者是 XML 数据,需要注意的是,在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。*/ ???@RequestMapping("/login.html") ???@ResponseBody ???public Object login(HttpSession session,@RequestParam String user){ ???????//后台非空验证 ???????if(user == null || "".equals(user)){ ???????????return "nodata"; ???????}else{ ???????????????//user 转换成 json 对象,再转成 java 对象 ???????????JSONObject userObject = JSONObject.fromObject(user); ???????????User userObj= (User)userObject.toBean(userObject, User.class); ???????????????????????try { ???????????????if(userService.loginCodeIsExit(userObj) == 0){//不存在这个登录账号 ???????????????????return "nologincode"; ???????????????}else{ ???????????????????User _user = userService.getLoginUser(userObj); ???????????????????????????????????????//登录成功 ???????????????????if(null != _user){ ???????????????????????//当前用户存到session中 ???????????????????????session.setAttribute(Constants.SESSION_USER, _user); ???????????????????????????????????????????????//更新当前用户登录的lastLoginTime ???????????????????????User updateLoginTimeUser = new User(); ???????????????????????updateLoginTimeUser.setId(_user.getId()); ???????????????????????updateLoginTimeUser.setLastLoginTime(new Date()); ???????????????????????userService.modifyUser(updateLoginTimeUser); ???????????????????????updateLoginTimeUser = null; ???????????????????????return "success"; ???????????????????}else{ ?????????????????????//密码错误 ???????????????????????return "pwderror"; ???????????????????} ???????????????} ???????????} catch (Exception e) { ???????????????return "failed"; ???????????} ???????} ???}

关于 ajax() 方法更多详细参数及使用方法参见 w3cschool手册



作者:Jason_M_Ho
链接:https://www.jianshu.com/p/d36d8cd508ed
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

看到一个想收藏的的AJAX小列子

原文地址:https://www.cnblogs.com/yhm9/p/10350694.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved