ajax步骤、状态码、get/post方式区别、封装ajax函数
来源:互联网 发布:mac上安装jdk 编辑:程序博客网 时间:2024/04/28 13:51
window.onload = function() {
var oBtn = document.getElementById('btn');
oBtn.onclick = function() {
//打开浏览器
/*
1.创建一个ajax对象
ie6以下new ActiveXObject('Microsoft.XMLHTTP')
*/
var xhr = null;
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//alert( xhr.readyState );
//在地址栏输入地址
/*
open方法
参数
1.打开方式
2.地址
3.是否异步
异步:非阻塞 前面的代码不会影响后面代码的执行
同步:阻塞 前面的代码会影响后面代码的执行
*/
xhr.open('get','1.txt',true);
xhr.send();
//等待服务器返回内容
/*
readyState : ajax工作状态
responseText : ajax请求返回的内容就被存放到这个属性下面
on readystate change : 当readyState改变的时候触发
status : 服务器状态,http状态码
*/
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
alert( xhr.responseText );
} else {
alert('出错了,Err:' + xhr.status);
}
}
}
}
}
onreadystatechange事件
readyState属性:请求状态
0 (初始化)还没有调用open()方法
1 (载入)已调用send()方法,正在发送请求
2 (载入完成)send()方法完成,已收到全部响应内容
3 (解析)正在解析响应内容
4 (完成)响应内容解析完成,可以在客户端调用了
status属性:服务器(请求资源)的状态
返回的内容
responseText:返回以文本形式存放的内容
responseXML:返回XML形式的内容
HTTP状态码 如:200、404、500
Get方式
当改了服务器脚本后,再次访问时显示的还是修改之前的数据。即缓存问题
1.缓存 在url?后面连接一个随机数,时间戳
2.乱码 编码encodeURI
xhr.open('get','2.get.php?username='+('刘伟')+'&age=30&' + new Date().getTime(),true);
Xhr.send();
Post方式
xhr.open('post','2.post.php',true);
//post方式,数据放在send()里面作为参数传递
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');//申明发送的数据类型
//post没有缓存问题
//无需编码
xhr.send('username=刘伟&age=30');
封装一个ajax函数
function ajax(method, url, data, success) {
var xhr = null;
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
if (method == 'get' && data) {
url += '?' + data;
}
xhr.open(method,url,true);
if (method == 'get') {
xhr.send();
} else {
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
xhr.send(data);
}
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
success && success(xhr.responseText);
} else {
alert('出错了,Err:' + xhr.status);
}
}
}
}
使用
ajax('get','getNews.php','',function(data) {
var data = JSON.parse( data );
var oUl = document.getElementById('ul1');
var html = '';
for (var i=0; i<data.length; i++) {
html += '<li><a href="">'+data[i].title+'</a> [<span>'+data[i].date+'</span>]</li>';
}
oUl.innerHTML = html;
});
- ajax步骤、状态码、get/post方式区别、封装ajax函数
- Ajax中的get与post方式区别
- AJAX ,GET POST区别
- $Ajax,$get,$Post区别
- 调用ajax封装POST GET True False 四种状态
- ajax post和get区别
- AJAX POST和GET区别
- AJAX POST和GET区别
- ajax get与post区别
- ajax get和post区别
- $.get、$.post、$getJSON、$ajax区别
- ajax与服务器传值有两种方式:get 和post的区别
- 【jQuery】Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
- Ajax请求GET/POST方法的封装
- Ajax请求GET/POST方法的封装
- AJAX中的POST与GET方式实例
- ajax post get方式提交数据详解
- jquery ajax的post、get方式
- (C语言)字符串转换为数字的函数
- PyTorch:开始入门的一些小代码上(from 莫烦)
- 微信小程序--多个按钮选中的联动效果
- Analysis of recommendation algorithms for e-commerce
- win2008 r2安装SQL SERVER 2008 R2 不能打开1433端口设置方法
- ajax步骤、状态码、get/post方式区别、封装ajax函数
- CTF找素数
- caffe + windows +cpu +vs2013安装与minist测试(上)
- AKKA 派发器
- 例题6-16 uva10129 Play on Words 欧拉回路 并查集判连通+欧拉回路的判断
- 给定一个排序的链接列表,删除所有重复项,使每个元素只显示一次。
- 5
- java 面试
- 【图像处理】MATLAB:形态学