分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

用XMLHttpRequest制作一个简易ajax

发布时间:2023-09-06 02:23责任编辑:苏小强关键词:暂无标签

概述

jquery退出历史舞台之后,我们怎么来发送ajax请求呢?可以用相关的库,也可以自己制作一个简易的ajax

需要说明的是,我们使用的是XMLHttpRequest 2,它几乎兼容所有主流浏览器:XMLHttpRequest advanced features

参考:

stackoverflow答案

实现get请求

先从支持get请求开始,代码如下:

function ajax(a, b, c){ // URL, callback, just a placeholder ???c = new XMLHttpRequest; ???c.open('GET', a); ???c.onload = b; ???c.send();}

这里的c是一个占位符,可以避免我们声明变量,虽然影响了一点可读性。

进行如下测试:

ajax('https://api.github.com/repositories/91545010/issues/1', function(e) { ???console.log(this.response);});

可以看到能够返回数据。

实现post请求

很多时候,我们需要post请求,支持post请求也很简单,代码如下:

// URL, callback, method, formdata, just a placeholderfunction ajax(a, b, e, d, c){ ???c = new XMLHttpRequest; ???c.open(e||'GET', a); ???c.onload = b; ???c.send(d||null);}

可以利用如下方式发送get和post请求:

ajax(url, callback);ajax(url, callback, 'post', {'key': 'val'});

实现错误处理

错误处理是请求api中必不可少的东西,实现也很简单,代码如下:

// URL, callback, errorCallback, method, formdata, just a placeholderfunction ajax(a, b, f, e, d, c){ ???c = new XMLHttpRequest; ???c.open(e||'GET', a); ???c.onload = b; ???c.onerror = f; ???c.send(d||null);}

可以利用如下方式发送get和post请求,并且定制error错误处理回调。

function error(e){ ?console.log('--Error--', this.type); ?console.log('this: ', this); ?console.log('Event: ', e)}ajax(url, callback, error);ajax(url, callback, error, 'post', {'key': 'val'});

学到了什么

我学到了什么?

  1. 自己一步步包装实现常用api其实没有那么难。
  2. ajax的内部原理。

用XMLHttpRequest制作一个简易ajax

原文地址:https://www.cnblogs.com/yangzhou33/p/9986655.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved