Ajax

前后端数据交互——通过在后台与服务器的少量数据交换,实现页面异步(局部)更新。

异步 -> XMLHttpRequest

后台 服务器

适应网址:

var request;

if(window.XMLHttpRequest){

request=new XMLHttpRequest(); //IE7+、Firefox、Chrome...

}else{

request=new ActiveXObject("Mierosoft.XMLHttp"); //IE5、6

}

当然,也可以通过try-catch异常处理机制(看下面四步操作中第一步讲解)完成。

HTTP请求

get:| 信息获取

:| URL传递参数

这种方式 快 ,但对发送信息数量有限制。

post:| 修改服务器资源 —— 安全

用XMLHttpRequest发送请求

open(method,url,sync); //发送请求方法、请求地址(从哪里获得数据)、同步/异步

send(string); //发送 没有数据时(从后端读取数据)string应写为null——兼容火狐

如:

request.open("GET","get.php",true); //true代表异步操作

request.send(null);

ajax发送异步请求的四步操作

第一步(得到XMLHttpRequest)

1.得到XMLHttpRequest

大多数浏览器都支持:var xmlHttp=new XMLHttpRequest();

IE6.0:var xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);

IE5.0以更早版本的IE:var xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);

2.编写创建XMLHttpRequest对象的函数 —— 兼容浏览器

function createXMLHttpRequest(){

try{

return new XMLHttpRequest();

} catch(e){

try{

return new ActiveXObject(“Msxml2.XMLHTTP”);

}catch(e){

try{

return new ActiveXObject(“Microsoft.XMLHTTP”);

}catch(e){

alert(“哥们儿,你用的是什么浏览器啊?”);

throw e;

}

}

}

}

第二步(打开与服务器的连接)

xmlHttp.open():用来打开与服务器的连接,它需要三个参数:

请求方式:可以是GET与POST

请求的URL:指定服务器端资源,例如:/day23_1/AServlet

请求是否为异步:如果为true表示发送异步请求,否则同步请求

第三步(发送请求)——send()

第四步

在xmlHttp对象的一个事件上注册监听器:onreadystatechange

xmlHttp对象一共有5个状态

0:初始化未完成状态,只是创建了XMLHttpRequest对象,还未调用open()方法

1:请求已开始,open()方法已调用,但还没调用send()方法

2:请求发送完成状态,send()方法已调用

3:开始读取服务器响应

4:读取服务器响应结束(通常我们只关心最后这个状态!!!)

xmlHttp.onreadystatechange = function(){//xmlHttp的5种状态都会调用本方法

if(xmlHttp.readyState ==4 && xmlHttp.status == 200){//双重判断:判断是否为4状态,而且还要判断是否为200

var text=xmlHttp.responseText;

}

};

案例——ajax读取“Hello world”

服务器端代码:

public class AServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Hello world!");

response.getWriter().print("Hello world");

}

}

页面代码:

Ajax 数据交互

点击这里,有惊喜!

function createXMLHttpRequest() {

try{

return new XMLHttpRequest(); // 绝大多数浏览器

}catch (e) {

try{

return ActiveXObject("Msxml2.XMLHTTP"); // IE6.0

}catch (e) {

try{

return ActiveXObject("Microsoft.XMLHTTP"); // IE5.5及更早版本

}catch (e) {

alert("哥们儿,你这浏览器,,,不行啊!");

throw e;

}

}

}

}

window.οnlοad=function () {

var btn=document.getElementById("btn"),

h1=document.getElementById("h1"),

text;

btn.οnclick=function () {

// var xmlHttp;

// if(window.XMLHttpRequest){

// xmlHttp=new XMLHttpRequest();

// }else{

// xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

// }

var xmlHttp=createXMLHttpRequest(); //这一步和上面被注释的几行本质上是一个东西

xmlHttp.open("GET","/文件操作/AServlet",true);

xmlHttp.send(null); //这是什么取决于get / post

//xmlHttp.send(处理了的post数据);

xmlHttp.onreadystatechange=function () {

if(xmlHttp.readyState===4 && xmlHttp.status===200){

text=xmlHttp.responseText; //得到服务器响应的文本格式的内容(更通用)——var text=XMLHttp.responseXML; //得到服务器响应的xml内容,这就是document对象了

h1.innerHTML=text;

}

}

}

}

最后,再放上jQuery中ajax发送请求数据的案例:

本文同步分享在 博客“行舟客”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

ajax 请求与响应,实例解读ajax发送请求与数据响应相关推荐

  1. 【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 ...

  2. angular ajax get post 参数,AngularJS - $ http.post发送请求参数而不是JSON的任何方式?...

    AngularJS - $ http.post发送请求参数而不是JSON的任何方式? 我有一些旧的代码通过jQuery的post方法发出一个AJAX POST请求,看起来像这样:$.post(&quo ...

  3. python实现http请求并发_Python使用grequests并发发送请求

    前言 requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快.但是requests发送请求是串行的,即阻塞的.发送完一条请求才能发送另一条请求. 为了提升测试效率 ...

  4. tp监控连接云路由服务器失败_TP ID提示发送请求失败怎么办?TP-Link ID发送请求失败现象的原因及解决方案...

    有时候在创建.登录.注销TP-LINK ID,或者在找回TP-LINK ID的密码.在线升级.刷新精选应用等与云服务有关操作时,路由器或APP界面可能提示"TP-Link ID发送请求失败, ...

  5. ajax请求返回json实例,Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据

    一.AjaxJson.aspx 处理业务数据,产生JSon数据,供JqueryRequest.aspx调用,代码如下: protected void Page_Load(object sender, ...

  6. ajax 上传文件实例,jquery ajax实现文件上传功能实例代码

    下面看下ajax实现文件上传 没有使用插件 一.单文件上传 文件: 上传文件 $(function () { $("#upload").click(function () { va ...

  7. html action get post请求参数乱码,input type=text 发送请求参数,中文乱码问题

    1.不废话,直接代码如下: teacher.jsp pageEncoding="UTF-8"%> 教师管理页面 课程资源目录: --------------- 作业提交目录: ...

  8. $.ajax 发送请求,JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)

    一.使用Ajax发送get请求 发送异步请求的步骤 - 获取Ajax对象:获取 XMLHttpRequest对象实例 - 创建请求:调用XMLHTTPRequest对象的open方法 - 设置回调函数 ...

  9. Ajax学习系列——向服务器发送请求

    1.如何发送请求? 如果需要向服务器发送请求,我们使用的是XMLHttpRequest对象中的open()和send()方法. var xhr = new XMLHttpRequest();//具体创 ...

  10. ajax 在IE9浏览器下不发送请求的解决方法

    ajax.form,在ie9下拒绝发送请求. 从网上找了好多资料,大部分都是以下方法: 针对 拒绝访问 是由于浏览器安全机制导致的,解决方法为点击IE浏览器的的"工具->Interne ...

最新文章

  1. svn教程----TortoiseSVN客户端
  2. SCVMM 2012 R2运维管理十三之:将资源添加到VMM库
  3. SAP 电商云 Spartacus UI Quick Order 延迟加载的现象分析
  4. ASP.NET性能优化小结(ASP.NETC#)(转)
  5. 企业会计准则2020版pdf_2020年下半年CATTI三级笔译中译英真题+参考答案+原文件汉英对照PDF版...
  6. 知识点:计算机网络的 89 个核心概念
  7. 如何用计算机处理图片,使用附带软件编辑照片 利用Digital Photo Professional 用电脑处理RAW图像...
  8. Unity如何查看当前内存使用情况
  9. 阿里高效沟通的秘密:向上沟通,跨部门沟通,PREP汇报...这5招绝了!
  10. 加号和减号在一起怎么读_数学符号里的“加减”是“±”,那么“减加”怎么打?求高手!!!!!!!!! word中加号和减号放在一起怎么打出来?...
  11. 量表:现代医学体系的“工具箱”
  12. 深度神经网络分析,神经网络 炒股
  13. 怎样修改图片的大小和格式
  14. 高僧斗法--Staircase Nim
  15. vue提示Named Route ‘News‘ has a default child route. When navigating to this named route...问题
  16. 线性回归算法在 java 中是如何实现的?
  17. windows 程序员装机必备软件
  18. 自定义ro.build.fingerprint
  19. 百度超级链开放网络治理监督藏品火爆售罄!
  20. TYVJ P1092 麻将

热门文章

  1. easyexcel导入固定sheet_springboot批量导入excel数据
  2. Java编程:排序算法——选择排序
  3. excel生成多个sheet .net
  4. C++_Hash容器总结
  5. 论文笔记_S2D.59_2015-ICRA_V-LOAM_低漂移、鲁棒和快速的视觉-激光 里程计和建图
  6. Java:对于Borderlayout布局管理的理解
  7. C++调用编译好的darknet来进行物体监测
  8. 补充其他数字类型 (了解)
  9. opensuse安装Tomcat碰到的问题
  10. Android 编程下 Using ViewPager for Screen Slides