AJAX = 异步JavaScript和XML,可以使网页实现异步更新,达到局部更新的目的。

一、AJAX请求步骤如下:

1、创建XMLHttpRequest对象

var xhr;
if(window.XMLHttpRequest){
var xhr = new XMLHttpRequest();
}
else{
var xhr = new ActiveXObject("Microsoft.XMLHttp");
}

2、向服务器发送请求

xhr.open(method,url,async);
xhr.send();//GET请求无参数,POST请求时一定要有参数

注:

  • method:请求的类型 GET或POST
  • url:文件在服务器上的位置,相对位置或绝对位置
  • async:异步(true)同步(false)

3、服务器响应

responseText 获得字符串形式的相应数据

responseXML 获得XML形式的响应数据

4、获取服务器状态码

XMLHttpRequest有三个重要属性:onreadystatechange,readyState ,status。

  • readyState 属性存有 XMLHttpRequest 的状态信息,从0-4发生变化。

0: 请求未初始化

1: 服务器连接已建立

2: 请求已接收

3: 请求处理中

4: 请求已完成,且响应已就绪

  • status

200:OK

404:未找到页面

  • readyState 触发onreadystatechange事件
xhr.onreadystatechange = function(){
if(xhr.readystate == 4&& xhr.status == 200){
do something;
}
}

5、简单的实例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function loadXMLDoc()
{
var xhr;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xhr = new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange=function()
{
if (xhr.readyState==4 && xhr.status==200)
{
document.getElementById("myDiv").innerHTML = xhr.responseText;
}
}
xhr.open("GET","/try/ajax/ajax_info.txt",true);
xhr.send();
}
</script>
</head>
<body> <div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改内容</button> </body>
</html>

二、AJAX 中POST和 GET的区别

POST和 GET都是向服务器发送的一种请求,只是发送机制不同。

1、GET请求会将参数跟在url后传递,POST请求是作为http消息的实体内容发送给服务器。

2、GET方式提交的数据最多只能是1024字节。

3、GET方式请求的数据会被浏览器缓存起来,别人可以读取,如帐号、密码等,相对于POST方式不安全。

4、在客户端使用GET请求时,服务器使用Request.QueryString 获取参数;在客户端使用POST请求时,服务器使用Request.Form获取参数。

5、当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。

最新文章

  1. php xdebug配置
  2. JavaScript原型链问题
  3. js原型 prototype
  4. js中RHS与LHS区别
  5. cookie存储记录
  6. sessionID的本质
  7. Spring HTTP invoker 入门
  8. AJAX实现google搜索建议实战
  9. AndroidContentProvider ContentResolver和ContentObserver的使用
  10. Objective-C路成魔【2-Objective-C 规划】
  11. NSA永恒之蓝病毒,如何通过360工具修复?
  12. linux中搭建solr集群出现org.apache.catalina.LifecycleException: Failed to initialize component ,解决办法
  13. BZOJ4241历史研究——回滚莫队
  14. JeeCMS v7 SSRF导致任意文件写入
  15. 09-JS的事件流的概念(重点)
  16. Spring学习(十九)----- Spring与WEB容器整合
  17. lodash用法系列(3),使用函数
  18. Winfrom 嵌入word、excel实现源码
  19. Crowd Control(输出不在最大值最小化的最短路上的边)
  20. 计算广告学-多点归因模型(Multi-Touch Attribution Model)

热门文章

  1. java项目中oracle配置说明
  2. bert中的分词
  3. 并发之AQS原理(一) 原理介绍简单使用
  4. php 注册树(注册模式)
  5. Arrange an Array to Form a Smallest Digit
  6. (六)cxf处理一些Map等复杂类型
  7. python 全栈开发,Day8(文件操作)
  8. 步步为营-35-SQL语言基础
  9. Java Timer, TimerTask, Timer.Schedule
  10. SQL行装列PIVOT和列转行UNPIVOT