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 ...
随机推荐
- 2018软工实践—Alpha冲刺(8)
队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 多次测试软件运行 学习OPENMP ...
- 扩展欧几里德 SGU 106
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=106 题意:求ax + by + c = 0在[x1, x2], [y1, y2 ...
- HDU 5651 xiaoxin juju needs help 逆元
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5651 bc:http://bestcoder.hdu.edu.cn/contests/con ...
- C++变量内存分配及类型修饰符
前言 了解C++程序内存分配,有助于深刻理解变量的初始化值以及其生存周期.另外,变量类型修饰符也会影响到变量的初始化值及其生存周期.掌握了不同类型变量的初始化值及其生存周期,能够让我们设计程序时定义变 ...
- 用iptables做代理
出于安全考虑,Linux系统默认是禁止数据包转发的.配置Linux系统的ip转发功能,打开系统转发功能:echo "1" > /proc/sys/net/ipv4/ip_fo ...
- PHP对象类型转换
其他数据类型转换为对象类型 其他数据类型转换为对象类型,得到的结果是:内置标准类(stdclass)的一个对象! 语法形式为: $obj1 = (object) 其他类型数据: 数组转换为对象:数 ...
- bootstrap 中的静态模式的控制按钮上的一个坑
在使用modal时发现,代码:<button class="btn btn-danger" data-toggle="modal" data-target ...
- 【HLSDK系列】服务端 AddToFullPack 函数
服务端会给客户端发送一些数据,其中两大种类数据是 clientdata_t 和 entity_state_t 这里我们说说 entity_state_t 这个结构体. 你在丢在地上的枪.C4等等是服务 ...
- Authenticator及AuthenticationStrategy
Authenticator的职责是验证用户帐号,是Shiro API中身份验证核心的入口点: 如果验证成功,将返回AuthenticationInfo 验证信息:此信息中包含了身份及凭证:如果验证失败 ...
- macvtap介绍
macvtap介绍 传统的linux网络虚拟化技术采用的是tap+bridge方式,将虚拟机连接到虚拟的tap网卡,然后将tap网卡加入到bridge.bridge相当于用软件实现的交换机,这种解决方 ...