Ajax基础知识详解


Posted in Javascript onFebruary 17, 2017

Ajax主要的功能是实现了浏览器端 异步 访问服务器:通过浏览器的XMLHttpRequest对象发出小部分数据,与服务端进行交互,服务端返回小部分数据,然后更新客户端的部分页面。

1.先实例化XMLHttpRequest对象

var request;
if (window.XMLHttpRequest){
 request=new XMLHttpRequest();
}
else{
 request=new ActiveXObject("Microsoft.XMLHTTP");
 //兼容ie5 6
}

2.XMLHttpRequest的方法将请求发送给服务器

request.open("POST",get.php,true);//请求
//设置http的头信息,告诉服务器我们要以send键值对方式发送一个表单,
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//POST必须设置Content-Type的值在open与send之间
request.send("name=王二狗&sex=男");//用send方法提交给服务端

3.获取响应的方法

responseText 获得字符串形式的响应数据
responseXML 获得XML形式的响应数据
status和statusText 以数字和文本形式返回HTTP状态码
getAllResponseHeader() 获取所有的响应报头
getResponseHeader() 查询响应中的某个字段的值

4.监听readyState属性的变化很重要

    为0 请求未初始化,open还没有被调用

    为1 服务器连接已建立,open已经调用了

    为2 请求已被接收,接收到头的信息了

    为3 请求处理中,接收到响应体了

    为4 请求已完成,且响应就绪,响应完成了

//readyState变化时触发
//通过onreadystatechange事件判断readyState属性的变化
request.onreadystatechange=function(){
 if(request.readyState===4&&request.status===200){
 //做一些事情 比如获取响应数据request.responseText
 }
}

5.完整XHR

var request=new XMLHttpRequest();//1.创建XHR对象
request.open("GET","get.php?number=" +表单里需要提交的数据,true);//2.调用open方法
//这里如果是post请求。send的就是一个包含数据的对象
request.send();//发送一些数据
request.onreadystatechange=function(){ //3.进行监听判断服务器是否正确响应
 if(request.readyState===4&&request.status===200){
 //4.做一些事情 比如获取服务器响应内容request.responseText
 }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
用js实现计算代码行数的简单方法附代码
Aug 13 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
js中匿名函数的N种写法
Sep 08 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
Aug 23 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
详解Javascript继承的实现
Mar 25 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
浅析Vue.js 中的条件渲染指令
Nov 19 Javascript
layui按条件隐藏表格列的实例
Sep 19 Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 Javascript
JavaScript事件的委托(代理)的用法示例详解
Feb 18 Javascript
bootstrap中模态框、模态框的属性实例详解
Feb 17 #Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 #Javascript
原生js实现日期计算器功能
Feb 17 #Javascript
Vue自定义指令拖拽功能示例
Feb 17 #Javascript
BootStrap实现鼠标悬停下拉列表功能
Feb 17 #Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 #Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 #Javascript
You might like
JpGraph php柱状图使用介绍
2011/08/23 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
php日期操作技巧小结
2016/06/25 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python通过floor函数舍弃小数位的方法
2015/03/17 Python
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python 比较两个数组的元素的异同方法
2017/08/17 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
python内打印变量之%和f的实例
2020/02/19 Python
Python气泡提示与标签的实现
2020/04/01 Python
python实现经典排序算法的示例代码
2021/02/07 Python
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
平面设计师工作职责范文
2013/12/03 职场文书
不打扫卫生检讨书
2014/02/12 职场文书
五一口号
2014/06/19 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2015年团支部工作总结
2015/04/03 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
JS代码编译器Monaco使用方法
2021/06/11 Javascript
Python装饰器详细介绍
2022/03/25 Python