封装的套路:

1.写一个相对比较完善的用例
2.写一个空函数,没有形参,将刚刚的用例直接作为函数的函数体
3.根据使用过程中的需求抽象函数

代码记录如下:

<script>
function ajax (method,url,params,done) { method=method.toUpperCase();
var xhr=new XMLHttpRequest();
var tempArr=[];
if (typeof params=== 'object') {
for(var key in params){
var value = params[key];
tempArr.push(key+'='+value);
}
params=tempArr.join('&');
}
if (method==='GET') {
url+='?'+params;
}
xhr.open(method,url);
var data=null;
if (method==='POST') {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
data=params;
}
params=params || null;
xhr.send(data); xhr.onreadystatechange=function () {
if (this.readyState!==4) return;
//reurn 无法再内部包含的函数中通过return给外部函数的调用返回结果
//由于异步模式下,这里的代码最后执行,所以不可能在外部通过返回的方法
done(this.responseText);
} }
ajax('POST','add.php',{key1 : 'value1',key2: 'value2'},function (res){
console.log(res);
}); </script>

jQuery中ajax的基本使用

<script src="jq-1.12.4.js"></script>
<script>
$.ajax({
url: 'add.php',
type: 'POST', //methor 请求方法
success : function(res){
console.log(res); //拿到的是响应体
},
dataType: 'json',
data: {id: 1, name:'张三'}
}); </script>

jQuery中ajax的回调函数使用

<script src="jq-1.12.4.js"></script>
<script>
$.ajax({
url: 'add.php',
type: 'POST',
beforeSend: function (xhr){
//在所有的发送请求的操作之前执行
console.log('beforeSend',xhr);
},
success: function(res){
//隐藏loading
//只有请求成功(状态码为200)才会执行这个函数
console.log(res);
}, error:(function(xhr) {
//隐藏loading
//只有请求不正常(状态码不为200)才会执行这个函数
console.log("error");
}),
complete:(function(xhr) {
//不管成功还是失败都会执行这个函数
console.log("complete");
})
}); </script>

试试自行封装AJAX和jQuery中的ajax封装的基本使用的更多相关文章

  1. js中的原生Ajax和JQuery中的Ajax

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). js中的Ajax: 参数介绍: open(String method,Str ...

  2. jQuery入门(4)jQuery中的Ajax应用

    jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...

  3. 从零开始学习jQuery (六) jquery中的AJAX使用

    本篇文章讲解如何使用jQuery方便快捷的实现Ajax功能.统一所有开发人员使用Ajax的方式. 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即 ...

  4. JavaScript原生封装ajax请求和Jquery中的ajax请求

    前言:ajax的神奇之处在于JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果.Ajax 在浏览器与 Web 服务器之间使用异步 ...

  5. Jquery中的Ajax

    AJAX: * jQuery中的Ajax * 封装第一层 - 类似于原生Ajax的用法 * $.ajax() - 最复杂 * 选项 * url - 请求地址 * type - 请求类型,默认为GET ...

  6. 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】

    一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...

  7. jquery中的ajax参数

    jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参 ...

  8. jQuery中操作Ajax方法小结

    有时候,越深入去了解一个点,越发觉得自己无知,而之前当自己晓得一两个片面的点还洋洋自得,殊不知,这是多么讽刺 jQery对Ajax操作进行了封装,常见的 ajax()属于最底层的方法,使用频率很高的 ...

  9. 深入理解ajax系列第九篇——jQuery中的ajax

    前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而 ...

随机推荐

  1. Django 的数据库查询

    class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def _ ...

  2. 给xmpphp添加了几个常用的方法

    给xmpphp添加给了以下的常用方法: registerNewUser            //注册一个新用户 addRosterContact           //发送添加好友的请求 acce ...

  3. css布局-双飞翼布局

    <div class="header">Header</div> <div class="bd"> <div clas ...

  4. 11. 将博客部署到tomcat上

    springboot项目既可以以jar运行,也可以做成war包放到服务器上,因为我的博客项目涉及到文件上传,所以按照jar的方式就不可行,需要部署到tomcat上,具体做法如下:1. 修改pom.xm ...

  5. 用Visual Studio Code Debug世界上最好的语言(Mac篇)

    用Visual Studio Code Debug世界上最好的语言(Mac篇) 首先,你要有台Macbook Pro,接着才继续看这个教程. PS:Windows用户看这里用Visual Studio ...

  6. scala 访问阿里云oss

    我们的数据一天就一个T,数据量不断增大,集群磁盘有限,所以把冷数据放到了oss,偶尔会使用到冷数据,如果使用的时候还的从oss上拉数据这样很浪费时间后来想了个办法可以直接获取到oss上的数据.案例:o ...

  7. blog4go.go

    package blog4go import ( "bufio" "errors" "fmt" "io" "o ...

  8. grpc.go

    package,,), etcd.WithPrefix(), etcd.WithPrevKV()}     gw.wch = gw.c.Watch(gw.ctx, gw.target, opts... ...

  9. privoxy自动请求转发到多个网络

    有些时候我们需要通过不同的代理访问不同资源,比如某些ip或域名走本地网络,某些ip或域名走不可描述的代理等.当然这只是举个栗子! 我要解决的问题是:我的内网机器没有internet访问权限,但是我的应 ...

  10. C语言文件 "w+"与"wb+"区别

    这是我今天碰到的问题,现在已经解决, 希望我的整理能够帮助到你们! w+以纯文本方式读写,而wb+是以二进制方式进行读写. mode说明: w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会 ...