AJAX,即Asynchronous Javascript And XML,AJAX本质是在HTTP协议的基础上以异步的方式与服务器进行通信。

所谓的异步,是指某段程序执行不会阻塞其他程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序。
从而提升整体执行效率。

1:客户端请求
js内置http请求对象 XMLHttpRequest;
a、请求行
xhr.open() 发起请求,可以是get、post方式

get和post请求方式的差异

1、GET没有请求主体,使用xhr.send(null)

2、GET可以通过在请求URL上添加请求参数

3、POST可以通过xhr.send('name=itcast&age=10')

4、POST需要设置

5、GET效率更好(应用多)

6、GET大小限制约4K,POST则没有限制
b、请求头
xhr.setRequestHeader() 设置请求头
c、请求内容
xhr.send() 发送请求主体 get方式使用xhr.send(null)

2:服务端相应
HTTP响应是由服务端发出的,由于服务器做出响应需要时间(比如网速慢等原因),所以我们需要监听服务器响应的状态,然后才能进行处理。
a、获取状态行(包括状态码&状态信息)
xhr.status 状态码,如200、304、404等; xhr.statusText 状态码信息如OK;
b、获取响应头
xhr.getResponseHeader('Content-Type')获取指定头信息;xhr.getAllResponseHeaders();获取全部响应头信息;
c、响应主体
xhr.responseText xhr.responseXML 都表示响应主体,我们需要检测并判断响应头的MIME类型后确定使用request.responseText或者request.responseXML。

onreadystatechange是Javascript的事件的一种,其意义在于监听XMLHttpRequest的状态,各种状态如下:
**readyState**
0:请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。

最新文章

  1. [C++]for同时遍历两个数组
  2. Java核心技术点之集合框架
  3. 阻止a标签默认跳转事件
  4. six month dormancy test
  5. js event 2
  6. (转)RabbitMQ 安装和监控
  7. 基于jquery实现的文字淡入淡出效果
  8. 【HDOJ】1495 非常可乐
  9. Android学习总结——Activity之间传递参数
  10. python高级-迭代器(18)
  11. No module named 'pip._internal'
  12. thymeleaf和easyui配合可能出现的错误
  13. pageadmin CMS网站制作教程:
  14. 盗墓笔记—阿里旺旺ActiveX控件imageMan.dll栈溢出漏洞研究
  15. 第三天-基本数据类型 int bool str
  16. Scrapy爬取美女图片续集 (原创)
  17. dom4j之selectSingleNode方法
  18. Source Insight常用快捷键及注释快捷键设置
  19. HDU 1074状压DP
  20. 【剑指offer】面试题 55. 二叉树的深度

热门文章

  1. Scala中的语言特性是如何实现的(3) -- Trait
  2. Dirichlet's Theorem on Arithmetic Progression
  3. 应用facebook .net sdk
  4. Api 和 Spi
  5. start running 开始跑步减肥
  6. 可编辑DIV (contenteditable="true") 在鼠标光标处插入图片或者文字
  7. Struts2.1.8 + Spring3.0+ Hibernate3.2整合笔记
  8. web前端安全---读书笔记
  9. 权限系统设计实现MVC4 + WebAPI + EasyUI + Knouckout
  10. 下载centos6.4