AJAX(异步的JavaScript和XML,用异步的形式去操作xml)

主要的作用:数据交互

  好处:

              1.节省用户的操作时间

              2.提高用户体验

              3.减少数据请求(传输获取数据)

function ajax(method,url, data, success){

//第一步:创建ajax对象

var xhr=null;

//这判断主要是为了兼容IE6,IE6没有XMLHttpRequest这个对象,所以前面要写上window,防止报错。

//还有一种写法是用try{尝试执行的代码如果有错误,则会执行catch里面的}catch(e){}

if(window.XMLHttpRequest){

//标准浏览器的对象(包括IE7-IE8)

xhr=new XMLHttpRequest();

}else{

//IE6下是这个对象

xhr=ActiveXObject('Microsoft.XMLHTTP');

}

//如果当前方法为get并且有数据的情况下

if(mothod=='get'&& data){

url+='?'+data;

}

//第二步:提交前的准备工作

open方法里面3个参数

1.用什么方式提交(get或者post)

2.请求地址

3.是否异步

区别:

get方式:把数据名称和数据值用=连接,如果有多个的话。那么他会把多个数据组合用&进行连接,然后把数据放到URL?后面传到指定页面,URL有长度限制,会被缓存。用户安全比较差些。

post方式:通过请求头发送的,理论上无限制大小,不会被缓存,安全性要好些。

true(异步):前面代码没执行完不会影响后面的代码执行

false(同步):前面的代码没执行完,后面的代码不会执行

xhr.open(method,url,true);

第三步:提交发送请求

//如果是空的代表是post

if(method=='get'){

xhr.send();

}else{

//设置请求头文档类型

xhr.setRequstHeader('content-type','application/x-www-form-urlencoded');

xhr.send(data);

}

第四步:等待服务器返回内容

//responseText:  ajax请求返回的内容

//readystate属性:请求状态

//onreadystatechang:当状态发生改变时触发

xhr.onreadystatechange=function(){

//请求状态等于4,代表响应内容解析完成。可以在客户端调用了

if(xhr.readystate==4){

//当服务器状态码等于200的时候,代表服务器返回成功

if(xhr.status==200){

//回调函数

success && succss(xhr.responseText);

}else{

alert('出错了,Err:'+xhr.status);

}

}

}

}

调用:

ajax('get' , '1.php', '' ,function(data){

console.log(data);

})

HTTP状态码:总共分为5种类型

1字开头:代表消息类型

2字开头:代表成功类型

3字开头:代表重定项类型

4字开头:代表错误类型

5字开头:代表服务器错误

希望能帮助需要的朋友,帮助它人也是帮助自己!

ajax详细讲解和封装包括HTTP状态码的更多相关文章

  1. (转)JAVA AJAX教程第三章—AJAX详细讲解

    现在开始深入AJAX,这里还是按老思路,理论和实践相结合.这章的内容主要是讲解AJAX步骤详解,下一张将会用一个AJAX技术实现页面提示效果的实例来说明AJAX的实现. 一.AJAX步骤详解 AJAX ...

  2. ajax success和error接收了哪些状态码

    ajax和 Http Status 之前一直奇怪ajax发送请求后success 和 error 分界的状态码是多少, 主要很多将ajax的教程也没有提到, 例如, 我用ResponseEntity& ...

  3. 多测师讲解接口测试 _HTTP常见的状态码归纳_高级讲师肖sir

    100 Continue  初始的请求已经接受,客户应当继续发送请求的其余部分 101 Switching Protocols  服务器将遵从客户的请求转换到另外一种协议 200 OK  一切正常,对 ...

  4. http状态码、错误分析

    客户端的每一次请求,服务器都必须给出回应.回应包括 HTTP 状态码和数据两部分. HTTP状态码五大类: 状态码 响应类别 出现原因 1XX  信息性状态码(Informational) 服务器正在 ...

  5. HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端

    协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...

  6. 9. http协议_响应状态码_页面渲染流程_路由_中间件

    1. http协议 超文本传输协议 协议详细规定了 浏览器 和 万维网服务器 之间互相通信的规则 客户端与服务端通信时传输的内容我们称之为报文(请求报文.响应报文) 常见的发送 get 请求方式 在浏 ...

  7. http状态码301和302的区别

    1.官方的比较简洁的说明: 301 redirect: 301 代表永久性转移(Permanently Moved) 302 redirect: 302 代表暂时性转移(Temporarily Mov ...

  8. http状态码301和302详解及区别——辛酸的探索之路(文章源自:http://blog.csdn.net/grandPang/article/details/47448395)

    一直对http状态码301和302的理解比较模糊,在遇到实际的问题和翻阅各种资料了解后,算是有了一定的理解.这里记录下,希望能有新的认识.大家也共勉. 官方的比较简洁的说明: 301 redirect ...

  9. 复习HTTP状态码+301和302

    一,HTTP状态码: 1xx:(信息状态码),接受的请求正在处理.2xx:(成功状态码),请求正常处理完毕.3xx:(重定向状态码),需要进行附加操作以完成请求.4xx:(客户端错误状态码),服务器无 ...

随机推荐

  1. 基于Ubuntu 14.04构建tomcat7镜像

    1.创建Dockerfile文件(如果在Windows下编辑文件,一定要将格式转化为Linux格式文件,否则将导致Linux下查看文件每行多一个^M) # Pull base image FROM u ...

  2. Nancy简单实战之NancyMusicStore(六):写在最后

    前言 由于公司搬家后,住的地方离上班的地方远了N倍,以前是走路十多分钟就可以到公司的,上班时间也从9:00提早到8:30 现在每天上班都是先坐公交,然后再坐地铁,在这段路上比较浪费时间而且每天都是要6 ...

  3. selenium相关面试题

    selenium中如何判断元素是否存在? selenium中hidden或者是display = none的元素是否可以定位到? selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元 ...

  4. 实现一个类 Vue 的 MVVM 框架

    Vue 一个 MVVM 框架.一个响应式的组件系统,通过把页面抽象成一个个组件来增加复用性.降低复杂性 主要特色就是数据操纵视图变化,一旦数据变化自动更新所有关联组件~ 所以它的一大特性就是一个数据响 ...

  5. 关于WIN10开机无法输入密码的问题

    昨日,电脑 遇到了开机无法输入密码的问题,神烦. 作为一个计算狗,怎么能直接装系统(百度了一堆方法,装系统,果真万能)呢. 所以,深刻的分析了下. 1 .首先说明基本情况. 计算机品牌:ASUS 系统 ...

  6. 三分钟解读springmvc依赖

    长期以来都在写SSM框架的项目,却未能深入理解框架的搭建原理,而只是浅薄的理解前辈的架构,然后不断套用,项目做过几个,但框架的内涵却没有把握.小编打算今天从SpringMVC的依赖分析做起,一步步进行 ...

  7. Dubbo源码学习文章目录

    目录 Dubbo源码学习--服务是如何发布的 Dubbo源码学习--服务是如何引用的 Dubbo源码学习--注册中心分析 Dubbo源码学习--集群负载均衡算法的实现

  8. css3 UI 修饰——回顾

    1.box-shadow 属性向框添加一个或者多个阴影. 语法: box-shadow: h-shadow v-shadow blur spread color inset h-shadow 必须,水 ...

  9. ArcGIS制图技巧系列(1)还原真实的植被

    ArcGIS制图技巧系列(1)还原真实的植被 by 李远祥 在GIS数据中,植被一般都是面装要素的形式存在.很多人在使用植被渲染的时候,一般会采用填充符号去渲染.而在ArcGIS中,填充符号要么就是纯 ...

  10. gRPC中Any类型的使用(Java和NodeJs端)

    工作中要把原来Java服务端基于SpringMVC的服务改为使用gRPC直接调用.由于原Service的返回值为动态的Map类型,key值不确定,且value的类型不唯一,因此使用了protobuf ...