博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分享:用promise封装ajax
阅读量:6501 次
发布时间:2019-06-24

本文共 1137 字,大约阅读时间需要 3 分钟。

用promise封装ajax

var ajaxOptions = { url: 'url', method: 'GET', async: true, data: null, dataType: 'text',}function ajax(protoOptions) { var options = {}; for(var i in ajaxOptions){ options[i] = protoOptions[i] || ajaxOptions[i]; }  return new Promise(function(resolve, reject){ var xhr = new XMLHttpRequest(); xhr.open(options.method, options.url, options.async); xhr.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { resolve(this.responseText, this); } else { var resJson = { code: this.status, response: this.response } reject(resJson, this) } } xhr.send() })}复制代码

1,open(method, url, async)

method: GET和POST;

url: 发送到服务端的url;

async: 异步true,同步false;

2,onreadystatechange

每当readyState的值变化,onreadystatechange函数自动执行

3,readyState 服务器响应的状态信息

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪

当readyState的值为4,status状态为200时表示相应已就绪,可以执行成功调用的方法,反之调用失败调用的方法.

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。 对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。 最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

转载于:https://juejin.im/post/5bbc9e20f265da0ae3441203

你可能感兴趣的文章
http和https有何区别
查看>>
微信小程序授权登录、解密unionId出错
查看>>
dockerfile构建flask环境
查看>>
js中的prototype、__proto__、constructor
查看>>
JAVA学习之路 (一) 入门及前期准备
查看>>
自动安装脚本
查看>>
高效编写Dockerfile的几条准则
查看>>
从零写一个Java WEB框架(一)
查看>>
webpack-serve 的使用
查看>>
一张图看懂Apsara Block Storage企业级分布式块存储产品
查看>>
JQuery快速使用之元素查找与操作
查看>>
js查找HTMLCollection对象中的下标
查看>>
PHP的工作原理和生命周期
查看>>
简单教学 apache 配置 Expire/Cache-Control 头
查看>>
深入理解js引擎的执行机制
查看>>
JavaScript高级程序设计笔记之 延迟异步脚本 defer async
查看>>
为什么要使用闭包和如何使用闭包
查看>>
rem / Vender Prefix / CSS extensions
查看>>
【396天】跃迁之路——程序员高效学习方法论探索系列(实验阶段153-2018.03.08)...
查看>>
Spring知识——注解
查看>>