1、ajax介绍
Ajax简介
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
2、创建 XMLHttpRequest 对象
XMLHttpRequest 对象
所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。
基本语法
var 请求对象 = new XMLHttpRequest();
老版本
var请求对象 = new ActiveXObject(“Microsoft.XMLHTTP”);
指定接收响应结果的函数
基本语法
请求对象.onreadystatechange = function(){
处理我返回结果的代码
};
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="res/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
//请求对象
var xmlhttp;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp = new XMLHttpRequest();
}else{
// IE6, IE5 浏览器执行代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
alert(xmlhttp);
//指定接收响应结果的函数
xmlhttp.onreadystatechange = function(){
};
</script>
</head>
<body>
</body>
</html>
代码讲解
1、创建XMLHttpRequest对象
var xmlhttp;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp = new XMLHttpRequest();
}else{
// IE6, IE5 浏览器执行代码
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”);
}
if (window.XMLHttpRequest) 判断浏览器中是否有XMLHttpRequest对象
xmlhttp = new XMLHttpRequest(); 新版本创建XMLHttpRequest对象
xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”); 旧版本创建ActiveXObject对象
2、指定接收响应结果的函数
xmlhttp.onreadystatechange = function(){
};
xmlhttp.onreadystatechange = function() 指定接收响应结果的函数
3、get、post请求
将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法
指定服务器端处理页面
基本语法
参数
请求的类型:GET 或 POST
地址:服务器上文件的地址
布尔值:true(异步)或 false(同步)
功能
将请求发送到服务器
基本语法
参数
string:必须,仅用于 POST 请求;如果是GET请求方式,可用null
功能
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="res/jquery/jquery-1.8.3.min.js"></script>
</head>
<body>
<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp = new XMLHttpRequest();
}else{
// IE6, IE5 浏览器执行代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//指定接收响应结果的函数
xmlhttp.onreadystatechange = function(){
document.write(xmlhttp)
};
//指定ajax服务器端处理页面
xmlhttp.open("get","res/htmlclassics/php/city.php",true);
//发送请求
xmlhttp.send(null);
</script>
</body>
</html>
代码讲解
1、指定ajax服务器端处理页面
xmlhttp.open(“get”,”res/htmlclassics/php/city.php”,true);
get 请求方式为get
res/htmlclassics/php/city.php” 服务器处理地址
true 异步处理请求
2、发送请求
4、url传参
基本语法
功能
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="res/jquery/jquery-1.8.3.min.js"></script>
</head>
<body>
<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp = new XMLHttpRequest();
}else{
// IE6, IE5 浏览器执行代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//指定接收响应结果的函数
xmlhttp.onreadystatechange = function(){
};
var cityCode = "010";
//指定ajax服务器端处理页面
xmlhttp.open("get","res/htmlclassics/php/city.php?id="+Math.random()+"&cityCode="+cityCode,true);
//发送请求
xmlhttp.send(null);
</script>
</body>
</html>
代码讲解
1、设置参数
2、服务器端处理路径
xmlhttp.open(“get”,”res/htmlclassics/php/city.php?id=”+Math.random()+”&cityCode=”+cityCode,true);
get 请求方式为get
res/htmlclassics/php/city.php 服务器处理地址
cityCode=cityCode 参数cityCode值为cityCode
true 异步处理请求
3、清除缓存
id=Math.random() 参数为id 值为随机数清除缓存
5、HTTP状态码
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
就绪状态—readyState 属性
每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest的状态信息。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
响应状态—status属性
200: “OK”
404: 未找到页面
在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。因此当 readyState 等于 4 且状态为 200 时,表示响应已就绪。
响应结果—responseText 属性
responseText获得字符串形式的响应数据。
代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="res/jquery/jquery-1.8.3.min.js"></script>
</head>
<body>
<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest){
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp = new XMLHttpRequest();
}else{
// IE6, IE5 浏览器执行代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//指定接收响应结果的函数
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status==200){
//接收响应结果
document.write(xmlhttp);
document.write(xmlhttp.responseText);
}
};
var cityCode = "010";
//指定ajax服务器端处理页面
xmlhttp.open("get","res/htmlclassics/php/city.php?id="+Math.random()+"&cityCode="+cityCode,true);
//发送请求
xmlhttp.send(null);
</script>
</body>
</html>
代码讲解
1、响应结果判断
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status==200){
//接收响应结果
document.write(xmlhttp);
document.write(xmlhttp.responseText);
}
};
if(xmlhttp.readyState == 4 && xmlhttp.status==200) 判断就绪状态等于4且响应状态等于200
document.write(xmlhttp); 在浏览器中输出请求对象
document.write(xmlhttp.responseText); 在浏览器中输出返回字符串形式的结果