AJAX流程
创建一个XHR对象
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
或者写成try/catch形式
try{
var xmlhttp = new XMLHttpRequest();
}catch(e){
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
初始化请求 open()
xmlhttp.open("POST","ajax_test.php",true);
xmlhttp.open("GET","ajax_test.php",true);
设置请求的HTTP头信息 setRequestHeader() 注:必须在open()后调用。
//用POST方法提交请求时,设置编码类型
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//提交COOKIE
xmlhttp.setRequestHeader("COOKIE","cookiename=cookievalue");
//提交XML
xmlhttp.setRequestHeader("Content-Type","text/xml");
发送请求 send()
xmlhttp.send()
指定请求状态改变时的事件句柄处理 onreadystatechange
xmlhttp.onreadystatechange = function(){
//code
}
获取当前请求状态 readyState对象
0(未初始化)-对象已经创建,但未调用open方法初始化;
1(初始化)-对象已经初始化,但未调用send方法;
2(发送数据)-send方法已经被调用,但是HTTP状态和HTTP头未知;
3(数据传送中)-已经开始接收数据,但由于响应数据和HTTP头信息不全,这时尝试获取数据会出现错误;
4(完成)-数据接收完毕。
if(xmlhttp.readyState == 4){
//code
}
返回当前请求的HTTP状态码 status属性
if(xmlhttp.status == 200){
//code
}
从返回信息中获取指定的HTTP头
xmlhttp.getResponseHeader("property")
获取返回信息的所有HTTP头 getAllResponseHeaders()
xmlhttp.getAllResponseHeaders()
取得返回的数据
xmlhttp.responseText;
//XML
xmlhttp.responseXML;
取消当前请求
xmlhttp.abort();
最终版本
//创建XHR对象
try{
var xmlhttp = new XMLHttpRequest();
}catch(e){
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//初始化请求
xmlhttp.open("POST","ajax_test.php",true);
//设置请求的HTTP头信息
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//指定请求状态改变时的事件句柄处理
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
//获取返回信息的所有HTTP头
alert(xmlhttp.getAllResponseHeaders());
//取得返回的数据
alert(xmlhttp.responseText);
alert(xmlhttp.responseXML);
}
}
//发送请求
xmlhttp.send();
AJAX流程的更多相关文章
- jQuery ajax 流程全解析
实例解析java + jQuery + json工作过程(登录) 本文主要讲解在java环境下使用jQuery进行JSON数据传送的交互过程 参考根据作者的账务管理系统(个人版) 源码下载 讲解 一. ...
- AJAX流程 代码
var xml = window.XMLHttpRequest ?new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHT ...
- Ajax学习心得
Ajax学习心得 大致学了下Ajax,才知道它不是某种编程语言,而是一种在无需加载整个页面的情况下能够更新部分网页的技术.了解了它的功能后觉得这真是一种好的技术,这得给前端和运维省多少力啊! 传统的网 ...
- php热身2:CRUD with Ajax
这次热身是一个会员管理系统,包括会员注册.登录.资料修改功能,使用ajax技术 1.建表 use common_module; create table if not exists member( u ...
- 重点+超详细:ajax和json及案例
不用jQuery的ajax流程 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht ...
- 异步请求之ajax
一.初识ajax 1.下载引入jQuery <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"& ...
- 再也不学AJAX了!(二)使用AJAX
在上一篇文章中我们知道,AJAX是一系列技术的统称.在本篇中我们将更进一步,详细解释如何使用Ajax技术在项目中获取数据.而为了解释清楚,我们首先要搞清楚我们是从哪里获取数据的,其次我们关注的才是获取 ...
- Ajax,跨域,nrm
一.ajax 原理 和 使用 ajax,即在不重新加载整个网页的情况下,对网页的某部分进行更新. 下面演示ajax 的实现原理 配置: cd ajax 参考:http://www.expressjs. ...
- AJAX经常遇到的那些问题
本文主要介绍了AJAX工作原理以及在面试题经常会遇到的问题,目录如下: 什么是Ajax 为什么要使用Ajax? Ajax特点? AJAX优缺点? Ajax流程? XMLhttprequest对象 AJ ...
随机推荐
- openssl 加密算法 CA 介绍
首先对于tftp服务的简要使用说明 (1)yum安装:tftp.tftp-server (2)启动tftp CentOS 6 service xinetd restart chkconfig tf ...
- Week2-作业1 -阅读《构建之法》
第一章 在阅读第1.2.2节时,感受最深,记得开学初有老师就给我们分析过计算机专业和我们专业的区别,当时是给我们讲的是计算机科学注重的是理论,偏向于硬件方面,而软件工程则注重实践,偏向于软件方面.然很 ...
- 【php】session读写锁
事件:a文件中操作$_SESSION['start'] = 'yes'; sleep(100); 休眠100s 在这休眠的时间段中,b文件操作$_SESSION['start'] = 'no'; 结 ...
- php自带的filter过滤函数
PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤. filter_has_var()检查是否存在指定输入类型的变量. filter_id()返回指定过滤器的 ID 号. filt ...
- Linux学习笔记3
touch filename 创建一个不存在的文件,或者修改文件的时间戳. touch log.txt whereis name 定位一个文件. whereis php.ini whereis.loc ...
- webgl 初识1
1. webgl是什么? WebGL其实是一个非常简单的API.好吧,“简单”可能是一个不恰当的描述. 它做的是一件简单的事,它仅仅运行用户提供的两个方法,一个顶点着色器和一个片断着色器, 去绘 ...
- 20个PHP程序性能优化的方法
1.数据库连接当使用完毕时应当关闭,不要使用长连接. 2.用@屏蔽错误消息的做法非常低效,极其低效. 3.使用选择分支语句(switch case)好于使用多个if,else if. 4.$row[' ...
- 【经典数据结构】Trie
在计算机科学中,trie,又称前缀树或字典树,是一种有种树,用于保存关联数组,其中的键通常是字符串.与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定.一个节点的所有子孙都有相同的前 ...
- Java虚拟机内存模型和volatile型变量
Java虚拟机内存模型 了解Java虚拟机的内存模型,有助于我们明白为什么会发生线程安全问题. 上面这幅图是<深入理解Java虚拟机-JVM高级特性与最佳实践>的书中截图. 线程共享的变量 ...
- linux系统常见命令以及操作
2.安装xshell,安装完打开,配置回话,输入名称(随便).SSH.主机(打开linux,点击右上角电脑图标system etho进行联网,打开终端输入ifconfig回车,找到inet add地址 ...