对于网络请求ajax理解
先对原生Ajax进行理解:
Ajax=异步JS和XML,用于创建快速动态网页的技术
可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
工作原理

对于Ajax的使用和实现---很重要
(1) 创建XMLHttpRequest对象,也就是创建一个异步调用对象.
var xmlHttp;
if(window.XMLHttpRequest){  //针对除IE6以外的浏览器
    xmlHttp = new XMLHttpRequest(); //实例化一个XMLHttpRequest
}else{
   xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   //针对IE5,IE6
}(2) 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.
xmlHttp.open('get','demo_get.html','true');//调用open()方法并采用异步方式
如果需要像 HTML 表单那样 POST 数据,请使用setRequestHeader() 来添加 HTTP 头。然后在send()方法中规定您希望发送的数据:
xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
提示:POST请求的特点如下:
· POST 请求不会被缓存
· POST 请求不会保留在浏览器历史记录中
· POST 请求不能被收藏为书签
· POST 请求对数据长度没有要求
(3)设置响应HTTP请求状态变化的函数.
xmlHttp.onreadystatechange()=>{
	if(xmlHttp.readyState === 4 && xmlHttp.status === 200){
	// 你需要执行的事件
    }
}响应状态码----常见
200: “OK”
· 304:该资源在上次请求之后没有任何修改(这通常用于浏览器的缓存机制,使用GET请求时尤其需要注意)。
· 403 (禁止) 服务器拒绝请求。
· 404 (未找到) 服务器找不到请求的网页。
· 408 (请求超时) 服务器等候请求时发生超时。
·500 (服务器内部错误) 服务器遇到错误,无法完成请求。
xmlHttp.send(); //使用open()方法将请求发送出去(5)获取异步调用返回的数据.
(6)使用JavaScript和DOM实现局部刷新
所以一个完整的ajax请求调用代码如下
<script>
    //step1.创建XMLHTTPRequest对象,对于低版本的IE,需要换一个ActiveXObject对象
    var xhr;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    } else {
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    //>>step2.使用open方法设置和服务器的交互信息:
    //设置请求的url参数,参数一是请求的类型,参数二是请求的url,参数三指定是否使用异步,默认是true
    xhr.open("post", "", true);
    //post请求一定要添加请求头才行不然会报错
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //>>step3.发送请求 GET请求不需要参数,POST请求需要把body部分以字符串或者FormData对象传进去。
    xhr.send();
    //>>step4.注册事件 onreadystatechange 状态改变就会调用
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) { // 成功完成
            // 判断响应结果:
            if (xhr.status === 200) {
                // 成功,通过responseText拿到响应的文本:
                console.log(xhr.responseText);
            } else {
                // 失败,根据响应码判断失败原因:
                console.log(xhr.status);
            }
        } else {
            // HTTP请求还在继续...
        }
    }
</script>参考资料:
对于网络请求ajax理解的更多相关文章
- 后台curl网络请求
		<?php //前端进行网络请求 ajax //后台进行网络请求用到两种方式 curl socket //进行网络请求的步骤 //1.初始化一个curl //2.对curl进行配置 // ... 
- 关于ajax网络请求的封装
		// 封装的ajax网络请求函数// obj 是一个对象function AJAX(obj){ //跨域请求 if (obj.dataType == "jsonp") ... 
- AJAX其实就是一个异步网络请求
		AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).其实就是一个异步网络请求. 一.创建对象 var xmlhttp; if (w ... 
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
		上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ... 
- React Native网络请求
		很多移动应用都需要从远程地址中获取数据或资源.你可能需要给某个REST API发起POST请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容--以下就是你会用到的东西.新手可以对照这 ... 
- Android之三种网络请求解析数据(最佳案例)
		AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ... 
- 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
		“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ... 
- GCD-两个网络请求同步问题
		在网络请求的时候有时有这种需求 两个接口请求数据,然后我们才能做最后的数据处理.但是因为网络请求是移步的 .我们并不知道什么时候两个请求完成 . 通常面对这样的需求会自然的想到 多线程 啊 .表现真正 ... 
- 在 JS 中使用 fetch 更加高效地进行网络请求
		在前端快速发展地过程中,为了契合更好的设计模式,产生了 fetch 框架,此文将简要介绍下 fetch 的基本使用. 我的源博客地址:http://blog.parryqiu.com/2016/03/ ... 
随机推荐
- Generative Adversarial Nets (GAN)
			目录 目标 框架 理论 数值实验 代码 Generative Adversarial Nets 这篇文章,引领了对抗学习的思想,更加可贵的是其中的理论证明,证明很少却直击要害. 目标 GAN,译名生成 ... 
- JavaScript交互式网页设计 • 【第8章  jQuery动画与特效】
			全部章节 >>>> 本章目录 8.1 显示隐藏动画效果 8.1.1 show() 方法与hide() 方法 8.1.2 toggle()方法 8.1.3 实践练习 8.2 ... 
- Java Swing设计简单商品信息管理系统(java swing+mysql+eclipse)
			一.概述 为了管理好商店库存信息,提升店铺管理工作效率,结合实际工作需要,设计和开发本系统,主要用于商店商品信息维护出入库等.包含商品库存信息查看.商品信息修改,新增商品信息,删除信息等功能. 二.功 ... 
- python 插入mysql数据库字符串中含有单引号或双引号报错
			出现问题场景:使用mysql数据库管理接口测试用例,新增接口用例时,传入的paras内容,有多层嵌套的时候,就会有["]双引号括住[']单引号的情况,可能在插入单双引号的数据到数据库的时候, ... 
- minio + kkFileView 实现在线预览
			minio上传的pdf之类文件不支持预览,地址在浏览器访问时会直接下载,现在搭配kkFileView文件预览 1.minio查看之前的安装方式 2.kkFileView安装 docker方式 1.拉取 ... 
- 华为云 Kubernetes 管理员实训 四 课后作业
			练习一 创建一个Service和一个Pod作为其后端.通过kubectl describe获得该Service和对应Endpoints的信息. Service的名称为<hwcka-004-1-s ... 
- js获取设备公网ip + 服务器根据公网ip 获取IP信息
			1.前言 本来呢,想实现js定位功能,最少定位到城市,一开始,使用的是搜狐的api直接获取数据,可是,有时候搜狐不可靠,只能得到 公网ip,其他信息无用,就像这样 2.既然这样,还不如我自己请求自己的 ... 
- Echart可视化学习(九)
			文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 官网找到类似实例, 适当分析,并且 ... 
- 在 k8s 中的 jenkins 集成 sonarqube 实现代码质量检查
			不乱于心,不困于情,不畏将来,不念过往,如此安好 --<不宠无惊过一生>丰子恺 概述 关于在 k8s 中安装 jenkins 和 sornarqube 可以查看下面的文章: 在 k8s 中 ... 
- Web开发之Servlet
			当一个请求到达服务端,服务器怎么处理? 当一个请求到达服务端时,由服务端的引擎来进行分析.它根据工程名找到工程, 然后拿到URL的资源地址和web.XML文件的所有的进行对比,和哪一个对比上就找到了具 ... 
