Ajax笔记 XHR XMLHttpRequest
XMLHttpRequest
xhr XmlHttpRequest
var request ;
if(Windows.XMLHttpRequest)
{ request = new XMLHttpRequest();//IE7 +,Firefox,Chrome,Opera,Safari
}else{
request=new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5
}
HTTP
网络通信规则
无状态协议 不建立持久的连接
请求过程
1、建立TCP连接
2、浏览器向服务器发送请求命令
3、浏览器发送请求头
4、服务器应答
5、服务器发送相应命令
6、服务器向浏览器发送数据
7、服务器关闭TCP连接
四部分组成:
1、方法、动作 Get orPOST
2、Url 请求地址
3、Header 请求头 客户端环境信息、身份验证
4、请求体 请求正文 客户提交的查询字段 或表单数据
HTTP响应
1、数字和文字组成的状态码
2、响应头 服务器信息 内容长度
3、相应体 相应正文
响应状态码:
1XX: 信息类,表示收到浏览器请求,正在进一步处理中
2XX: 成功,表示用户请求被正确接收
3XX: 重定向,表示请求没有成功,客户必须采取进一步的动作
4XX: 客户端错误,表示客户端提交的请求有错误 例:404 请求文档不存在
5XX: 服务器错误,服务器不能完成对请求的处理
XMLHttpRequest发送请求
open(method,url,async);
open(GET,Http://baidu.com,True);
send(string);
send(name=lala&age=3);
例如:GET
var request = new XMLHttpRequest();
request.open("GET","Http://baidu.com",true);
request.send();
POST
var request = new XMLHttpRequest();
request.open("POST","http://baidu.com",true);
request.setRequestHeader("Content-Type","x-www-form-urlencoded");
request.send("kw=百度一下");
XMLHttpRequest取得响应
resposeText: 获取字符串格式的相应数据
resposeXMl: 获得XML格式的相应数据
status和statusText 以数字和文本形式返回HTTP状态码
getAllResposeHeader(); 获取所有的响应报头
getResposeHeader(); 查询相应中的某个字段的值
readyState属性
0:未初始化 open未调用
1:open调用 服务器已建立
2:服务器已接收 接收到头信息了
3:请求处理中 接收到相应主体了
4:请求已完成 响应完成
request.readState;
request.onreadyStatechange=function(){
if(request.readyState==4 && request.status ==200){
do something;
}
};
Content-Type:
text/plain 纯文本
application/json Json
text/xml XML
text/html HTML
appliaction/javascript Javascript
Json解析
var jsondata = '{"s":[{"name":"a"},{"name":"a"},{"name":"a"}]}
var json = eval('('+jsondata+')');//不判断是否合法 不能屏蔽javascript语句
var json = JSON.parse(jsondata);//校验字符串 屏蔽javascript
JQuery实现Ajax
$.ajax(
type:"POST|GET",
url:"http://baidu.com",
data:{id:id},
dataType:"json",//预期返回的数据类型
success:function(data){},请求成功回掉函数,传入返回后的数据
error:function(data){}//请求失败调用,传入xhr对象
)
跨域
处理跨域方法一 代理
处理跨域方法二 JSONP
处理跨域方法三 XHR2
XMLHttpRequest Level2
IE10以下都不支持
服务器添加响应头:
header('Access-Control-Allow-Origin:"*"');//* 所有域名
header("Acctss-Control-Allow-Methods:POST,GET");
Ajax笔记 XHR XMLHttpRequest的更多相关文章
- Jquery笔记和ajax笔记
Jquery笔记:jQuery是一个JavaScript函数库,专为事件处理设计 1.jQuery的引入 <script text="type/javascript" src ...
- JavaScript:学习笔记(10)——XMLHttpRequest对象
JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...
- JavaScript封装Ajax工具函数及jQuery中的ajax,xhr在IE的兼容
封装ajax工具函数 首先要思考:1.为什么要封装它?提高开发效率2.把一些不确定的情况考虑在其中 a. 请求方式 b. 请求地址 c. 是否异步 d. 发送参数 e. 成功处理 f. 失败处理3.确 ...
- $.ajax通用格式&&XMLHttpRequest对象属性和方法
$.ajax({ url: "", type: "POST", async: false, cache:false, //默认true data: {}, da ...
- Ajax技术---核心XMLHttpRequest对象
Ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. (一)ajax技术的意义 我 ...
- 学习笔记 之--AJAX核心对象 XMLHttpRequest
实现AJAX功能,核心就是XMLHttpRequest,而且现在大多数浏览器都支持这个核心组件对象. 实例:实现无刷新登陆验证 1.前台代码 <html xmlns="http://w ...
- script ajax / XHR / XMLHttpRequest
s 利用XHR 调试发送form data表单数据,F5键刷新form表单URL ,http请求地址,获取token,提交. 如:http://pcp.cns*****.com/spcp-web/vm ...
- 弄一个ajax笔记方便查询-$.ajax()
$.ajax()是所有ajax方法中最底层的方法,所有其他方法都是基于$.ajax()方法的封装.这个方法只有一个参数,传递一个各个功能键值对的对象. $.ajax()方法对象参数表: 参数 类型 说 ...
- 弄一个ajax笔记方便查询-基础知识篇
jQuery对Ajax做了大量的封装,jQuery采用了三层封装: 最底层的封装方法为:$.ajax() 通过最底层进一步封装了第二层的三种方法:.load().$.get().$.post() 最高 ...
随机推荐
- 201521123032 《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 在课堂上在老师 ...
- 201521123057 《Java程序设计》 第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容 2. 书面作业 1.List中指定元素的删除(题目4-1) 1.1 实验总结 答:remove中注意应该使用eq ...
- 201521123102 《Java程序设计》第4周学习总结
1. 本周学习总结 2. 书面作业 Q1.注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 类的注释: 方法的注释: Q2.面向对象设计(大作业1- ...
- 使用Eclipse Egit与码云管理你的代码
总体流程: 建立远程仓库 建立本地仓库并与远程仓库关联 将Eclipse中的项目提交到本地仓库并进而push到远程仓库 一. 配置Eclipse EGit 图解Eclipse中安装及配置EGit插件中 ...
- 201521145042《Java程序设计》第14周学习总结
MySql操作视频与数据库相关jar文件请参考QQ群文件. 本次作业参考文件 数据库PPT 0. 本周课程设计发布 Java课程设计 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总 ...
- 201521123097《Java程序设计》第九周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
- Jar文件 META-INF/MANIFEST.MF文件详解
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANI ...
- 2017年9月19日 JavaScript语法操作
关于JavaScript个人还是觉得比较有意思的 {在</html>后面写或者在</body>前面写(必须紧贴</body>)} <script> va ...
- iOS 信号量
信号量就是一个资源计数器,对信号量有两个操作来达到互斥,分别是P和V操作. 一般情况是这样进行临界访问或互斥访问的: 设信号量值为1, 当一个进程1运行是,使用资源,进行P操作,即对信号量值减1, ...
- nodejs 初次链接 mongodb 的详细细节
时间 2016-06-2613:05:16 在前端的学习也有一段时间了,学习了html,css,javascript,jqery,ajax,php,mysql,学习了这些,了解了一些皮毛,也没有什么 ...