美文网首页web前端之路
一分钟学会Ajax的几个步骤及封装方法

一分钟学会Ajax的几个步骤及封装方法

作者: 疯也是一种态度_ | 来源:发表于2019-11-13 20:01 被阅读0次

Ajax的步骤

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

第一步 : 初始化 & 实例化

var xhr = new XMLHttpRequest()

第二步 : 创建链接, 用什么链接,和谁链接 同步 false 异步 true

xhr.open('get','http://baidu.com',true) // 默认异步

第三步 : 监听改变

xhr.onreadystatechange = function(){
if(xhr.readyState === 4 && xhr.status === 200){
   console.log(xhr.responseText)
  }
}

第四步 : 传输数据

xhr.send()

封装方法

function ajax(opt){
 //默认
var default_opt = {
url:'',
method: 'GET',
async: true,
data: {},
success:null,
callback:null
}
//合并
var newOpt = Object.assign(default_opt, opt);
//实例化
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
xhr.onreadystatechange = function(){
if(xhr.readyState === 4 && xhr.status === 200){
  newOpt.callback && newOpt.callback(xhr.responseText)
  }
}  
//get?
var search = '';
if(newOpt.method.toUpperCase() === 'GET'){
// ?name=zdd&age=30
search = '?' + Object.keys(newOpt.data).map(function(k){
  return k + '=' + newOpt.data[k]
}).join('&');
}
//建立链接
 xhr.open(newOpt.method, newOpt.url + search, newOpt.async);
//post?
var data = {};
if(newOpt.method.toUpperCase() === 'POST'){
//设置请求头
xhr.setRequestHeader('Content-Type', 'application/x-www-form- 
urlencoded');
data = JSON.stringify(newOpt.data);
}
xhr.send(data);
}

-----------------------------------------------------------


ajax({
url: 'http://127.0.0.1:3000/api/data',
method: 'post',
async: true,
data: {
  name: 'zdd',
  age: 30
},
success: function (data) {
  console.log('yes');
},
callback: function (data) {
  console.log(JSON.parse(data));
}
})

相关文章

  • 一分钟学会Ajax的几个步骤及封装方法

    Ajax的步骤 readyState状态• 0: 请求未初始化• 1: 服务器连接已建立• 2:...

  • 使用promise封装ajax请求

    封装一个ajax请求方法: 调用ajax方法,发送请求

  • ajax总结

    1. Ajax 1.1 原生JavaScript封装Ajax 1.2 jquery ajax 及其 快捷方法 $....

  • 【JavaWeb】jQuery对Ajax的支持

    jQuery对Ajax的支持 jQuery对Ajax进行封装,提供了$.ajax()方法 语法:$.ajax(op...

  • 微信小程序-ajax的使用和封装

    微信小程序的ajax使用方法: ajax 函数封装 在我们做项目的时候,为了方便复用,需要封装ajax函数方便随时...

  • AJAX学习(二):jQuery与AJAX

    AJAX()方法 jQuery对AJAX进行了非常完整的封装,提供了非常丰富的AJAX方法以供使用。jQuery中...

  • Ajax

    jQuery方法使用Ajax技术 三层封装方法: 最底层:$.ajax();中间层:.load()、$.get()...

  • js原生ajax

    Ajax及封装Ajax详解参考传送门:https://blog.csdn.net/c__dreamer/artic...

  • fetch

    Fetct fetch:系统基于promise封装的ajax方法 fatch().then().then() 缺点...

  • Ajax相关知识点

    ajax特性:可实现局部刷新页面 自己封装Ajax 基本步骤 1.发送请求: var xhr=new XMLHtt...

网友评论

    本文标题:一分钟学会Ajax的几个步骤及封装方法

    本文链接:https://www.haomeiwen.com/subject/etpkictx.html