Ajax通过XMLHttpRequest对象实现异步方式在后台发送发送请求。

主要有以下四个步骤:

(1)初始化XMLHttpRequest对象。不同浏览器的差异,需要我们创建一个跨浏览器的对象,并判断XMLHttpRequest对象创建是否成功,如果不成功,则给予提示。

(2)为XMLHttpRequest对象指定一个回调函数,用于对后台返回结果进行处理。

(3)创建一个与服务器的连接,在创建时,需要指定发送请求的方式(GET/POST),以及设置是否采用异步方式发送请求。

(4)向服务器发送请求。

以下是一个用Ajax判断用户名是否正确的样例:

index.jsp文件:

page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">function getAnswer(username) {if(username.value == ""){alert("请输入用户名");username.focus();return;}else{checkUsername("checkusername.jsp?username="+username.value);    //参数已整合到url地址中}}function checkUsername(url) {http_request = new XMLHttpRequest();      //初始化XMLHttpRequest对象http_request.onreadystatechange = function (){      //回调函数对后台返回结果进行处理if(http_request.readyState==4){if(http_request.status == 200){alert(http_request.responseText);}else{alert("地址有误");}}}http_request.open("POST",url,true);         //链接服务器http_request.send(null);                    //发送请求,这里不用带参数,前面参数已经整合进url中。}
</script>
</head>
<body>
<form action="" method="get" name="form1">用户名:<input type="text" name="username"><br>密码:<input type="password" name="passwd"><br><input type="submit" value="提交" onclick="getAnswer(this.form.username)">
</form>
</body>
</html>

checkusername.jsp(后台处理):

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%String s = new String(request.getParameter("username").getBytes("ISO-8859-1"),"utf-8");if(s.equals("Tom")){out.print("此用户已注册");}else{out.print("恭喜你注册成功");}
%>

另一种实现方法:(post方法,但传参数)

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">function getAnswer(username) {if(username.value == ""){alert("请输入用户名");username.focus();return;}else{checkUsername("checkusername.jsp",username);   }}function checkUsername(url,username) {http_request = new XMLHttpRequest();      //初始化XMLHttpRequest对象var param = "username="+username.value;//alert(username.value);http_request.onreadystatechange = function (){      //回调函数对后台返回结果进行处理if(http_request.readyState==4){if(http_request.status == 200){alert(http_request.responseText);}else{alert("地址有误");}}}http_request.open("POST",url,true);         //链接服务器http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");       //设置表头http_request.send(param);                    //发送请求,这里不用带参数,前面参数已经整合进url中。}
</script>
</head>
<body>
<form action="" method="get" name="form1">用户名:<input type="text" name="username"><br>密码:<input type="password" name="passwd"><br><input type="submit" value="提交" onclick="getAnswer(this.form.username)">
</form>
</body>
</html>

Ajax工作流程(原生Ajax)相关推荐

  1. [JavaScript][AJAX] 前后端交互流程,ajax工作流程

    目录 前后端交互流程 1.了解服务器 : 提供服务器的机器(计算机) 2.前端 访问服务器的几种方式 3.ajax技术 : 页面不跳转的情况下,向服务器请求数据 4.前后端交互三个流程 ajax工作流 ...

  2. 原生ajax如何执行,原生ajax调用数据实例讲解

    由于jQuery的盛行,现在使用较多的是jQuery封装好了的ajax,因为解决了浏览器兼容性问题,这对程序员来说就等于去掉了一个心头大患,但并非原生ajax就销声匿迹,并且本人感觉还是对原生的aja ...

  3. .ajax get 写法,原生Ajax写法(GET)

    ajax的GET提交方式的原生代码: var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(w ...

  4. 一、AJAX学习笔记——原生AJAX (ajax简介、XML简介、ajax优缺点、ajax的使用)

    第 1 章:原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML. 通过 AJAX 可以在浏览器中向服 ...

  5. 原生ajax传值php,原生ajax上传图片,php后台处理总结

    原生ajax上传图片,php后台处理总结 这篇文章发布于 2018/10/03,归类于 后端数据库等 标签: 原生ajax上传图片,php后台处理图片上传 开始做图片上传,发现之前的处理方式基本忘光了 ...

  6. 瀑布流ajax思路步骤,原生ajax瀑布流demo分享(必看篇)

    最近听朋友们说起瀑布流挺多的,自己就去研究下了,一个简单的原生demo,分享给大家... 简单分为三个文档,有详细的注释:img:ajax.php:demo.php 其中img文件夹中放入图片 1.j ...

  7. 原生php ajax post_使用原生ajax发送post请求完整案例

    搜索热词 使用ajax发送数据实现前后台的交互,我想是web开发最基础的技能了.近来dz开发因为不兼容jquery,所以只能使用原生js发送数据,不想还遇到很多问题.在这里分析总结一下.先来一个使用a ...

  8. 对原生ajax的理解

    $.ajax({url:'',//请求文件路径type:'',//请求方式GET POSTdata:{},//要发给服务器的数据参数dataType:'',//希望接口返回的数据格式json,stri ...

  9. 【AJAX 笔记】AJAX 基本、HTTP 基本、原生 AJAX 的使用,jQuery / Axios / fetch 发送请求、跨域(JSONP/CORS)

    文章目录 1 Ajax 概述 1.1 AJAX 简介 1.2 XML 简介 1.3 AJAX 的特点 1.3.1 AJAX 的优点 1.3.2 AJAX 的缺点 1.4 AJAX 属性和方法 2. H ...

最新文章

  1. 鱼佬:从数据竞赛到工作!
  2. s3c2410上搭建QT/Embedded4.8.5开发环境(四)--安装intel-x86 X11平台qt库qt-everywhere-opensource-src-4.8.5...
  3. QT在VS2013中的配置
  4. 深圳人均GDP过一万美元随想
  5. mysql数据库as表恢复_使用flashback database找回被误删除表空间
  6. python小项目推荐项目-Python 的练手项目有哪些值得推荐?
  7. 【hdoj】3007 Buried memory 【计算几何--最小圆覆盖】
  8. 资源大集中 浪潮I9000刀片为国家税务总局打造全能型平台
  9. 【Nginx】location 指向某一个文件 / 指定路径访问某一文件
  10. 32位oracle_oracle 性能调优
  11. Configutation读取properties文件信息
  12. 生产系统服务器是啥意思,生产系统服务器主机名怎么看
  13. JS_17 ES5,ES6
  14. Eval绑定日期时,修改日期显示的格式
  15. 荣耀20青春版能升鸿蒙吗,荣耀20青春版上手 配置跑分如何
  16. Oddz将于3月18日在Polkastarter进行IDO,此前已完成260万美元战略融资
  17. 「随机化快排」期望运行时间证明
  18. 文本比较算法Ⅸ——Primal-Dual算法
  19. 用16进制编辑器编写一个DLL文件
  20. html做新浪体育,新浪体育台看不了怎么办?新浪体育台网页版加载失败的解决方法介绍...

热门文章

  1. 解析xml数据存入bean映射到数据库的 需求解决过程
  2. poi excel设置合并单元格边框格式
  3. SoapUI简介和入门实例解析
  4. Aop和Filter区别
  5. 通过路由进行参数的传递(方法一)
  6. 找新房子需要考虑的因素
  7. HDU 4930 Fighting the Landlords(扯淡模拟题)
  8. 10.10 traceroute:追踪数据传输路由状况
  9. 【老王来了】之隔壁路由器坏了,他来了...
  10. 测试使用skywalking_skywalking初体验