文章目录

  • 修改文件
    • index.js
    • constants.js
  • 导入

修改文件

index.js

import Ajax from './ajax.js';
// 常量
import {ERROR_HTTP_CODE,ERROR_REQUEST,ERROR_TIMEOUT,ERROR_ABORT,ERROR_HTTP_CODE_TEXT,ERROR_REQUEST_TEXT,ERROR_TIMEOUT_TEXT,ERROR_ABORT_TEXT
} from './constants.js';const ajax = (url, options) => {// return new Ajax(url, options).getXHR();let xhr;const p = new Promise((resolve, reject) => {xhr = new Ajax(url, {...options,...{success(response) {resolve(response);},httpCodeError(status) {reject({type: ERROR_HTTP_CODE,text: `${ERROR_HTTP_CODE_TEXT}: ${status}`});},error() {reject({type: ERROR_REQUEST,text: ERROR_REQUEST_TEXT});},abort() {reject({type: ERROR_ABORT,text: ERROR_ABORT_TEXT});},timeout() {reject({type: ERROR_TIMEOUT,text: ERROR_TIMEOUT_TEXT});}}}).getXHR();});p.xhr = xhr;p.ERROR_HTTP_CODE = ERROR_HTTP_CODE;p.ERROR_REQUEST = ERROR_REQUEST;p.ERROR_TIMEOUT = ERROR_TIMEOUT;p.ERROR_ABORT = ERROR_ABORT;return p;
};const get = (url, options) => {return ajax(url, { ...options, method: 'GET' });
};const getJSON = (url, options) => {return ajax(url, { ...options, method: 'GET', responseType: 'json' });
};const post = (url, options) => {return ajax(url, { ...options, method: 'POST' });
};export { ajax, get, getJSON, post };

constants.js

// 常量
export const HTTP_GET = 'GET';
export const CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded';
export const CONTENT_TYPE_JSON = 'application/json';export const ERROR_HTTP_CODE = 1;
export const ERROR_HTTP_CODE_TEXT = 'HTTP 状态码异常';
export const ERROR_REQUEST = 2;
export const ERROR_REQUEST_TEXT = '请求被阻止';
export const ERROR_TIMEOUT = 3;
export const ERROR_TIMEOUT_TEXT = '请求超时';
export const ERROR_ABORT = 4;
export const ERROR_ABORT_TEXT = '请求终止';

导入

 <script type="module">import { ajax, get, getJSON, post } from './ajax/index.js';const url = 'https://www.imooc.com/api/http/search/suggest?words=js';// const url = 'https://www.iimooc.com/api/http/search/suggest?words=js';const p = getJSON(url, {params: { username: 'alex' },data: { age: 18 }// timeoutTime: 10// success(){},error(){}});p.xhr.abort();const { ERROR_HTTP_CODE, ERROR_REQUEST, ERROR_TIMEOUT, ERROR_ABORT } = p;p.then(repsonse => {console.log(repsonse);}).catch(err => {// console.log(err);switch (err.type) {case ERROR_HTTP_CODE:console.log(err.text);break;case ERROR_REQUEST:console.log(err.text);break;case ERROR_TIMEOUT:console.log(err.text);break;case ERROR_ABORT:console.log(err.text);break;}});</script>

【仿旅游网站】使用Promise改造封装好的Ajax相关推荐

  1. 【仿旅游网站】Ajax封装

    文章目录 "ajax封装"目录 ajax.js (Ajax类) default.js (存放默认参数 ) utils.js (工具函数) constants.js index.js ...

  2. HTML期末作业-仿旅游景点介绍网站HTML模板(HTML+CSS+JavaScript)

    HTML期末作业-仿旅游景点介绍网站HTML模板(HTML+CSS+JavaScript) 旅游景点介绍网站模板,全套模板,包括首页.历史.风景.旅游.美食.动态.留言.团队介绍.. 效果演示 代码实 ...

  3. 清新iso7风格-仿格子微酒店触屏版html5手机wap旅游网站模板下载

    为什么80%的码农都做不了架构师?>>> 清新iso7风格-仿格子微酒店触屏版html5手机wap旅游网站模板下载说明: 清新iso7风格-仿格子微酒店触屏版html5手机wap旅游 ...

  4. 仿途风网旅游网站/爱讯.NET程序敏捷开发框架

    技术特点: 本系统采用PETSHOP抽象工厂三层架构,数据库兼容SQL SERVE 2008及Oracle等数据库,前台采用Jquery+Ajax+JqueryUI,并使用formValidator. ...

  5. 2016最新的旅游网站程序CMS系统优点和缺点对比分析

    旅游网站或者旅行社网站建设,有着自己的独特性,比如旅游线路都是有团期的,必须可以按照每天天来单独报价,比如线路行程都是按天安排的,第一天玩哪里,第二天玩哪里,,发布线路的时候必须按每天天来,才逻辑清晰 ...

  6. 塞北村镇旅游网站设计(论文+PPT+源码)

    此处为论文中文题目,要求居中填写 主标题不超过24个汉字:可加副标题(副标题前加破折号),副标题与主标题间空一行的位置 主标题:黑体,小二,居中 副标题:楷体_GB2312,四号,居中 阅后删除此文本 ...

  7. 基于java+SpringBoot+HTML+Mysql旅游网站设计与实现

    详细功能设计:请点击下面链接查看基于java+SpringBoot+HTML+Mysql旅游网站设计与实现_哔哩哔哩_bilibili 源码+论文获取: 源码+论文获取请私信获取 目录 Abstrac ...

  8. 【java毕业设计】基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(毕业论文+程序源码)——村镇旅游网站

    基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现,文章末尾 ...

  9. (附源码)node.js游云旅游网站 毕业设计231547

    云游旅游网站的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题. ...

最新文章

  1. 获得PMP证书的这一年
  2. easyui datagrid 多行删除问题
  3. linux net.ipv4.ip_forward 数据包转发
  4. GDCM:gdcm::Directory的测试程序
  5. 1006. 换个格式输出整数 (15)
  6. 华为升级harmonyos的机型名单,华为鸿蒙 OS 2.0 系统适配名单已出,四月推送,天玑机型暂时无缘...
  7. 程序员一年稳赚50w,却被群嘲只造改bug!TA说:2020年我的愿望是........
  8. 聚奎中学2021高考成绩查询,江津2017全体高考考生的喜报
  9. 【编程之美】java二进制实现重建
  10. python代码如何做成应用程序_如何发布你的Python应用程序
  11. 跳妹儿学编程之ScratchJr(五):ScratchJr入门程序积木块功能介绍与使用技巧
  12. EXCEL-解决表格被锁定和分组的冲突
  13. 笔记本电脑双显卡怎么切换独立显卡的方法
  14. C# webBrowser打开网页出现脚本错误解决
  15. Android 一款十分简洁、优雅的日记APP
  16. 最公正海贼王实力排行TOP50!
  17. GO语言实战之类型的本质
  18. 如何下载IEEE论文
  19. 初学数据治理必读书单(2022年版本)
  20. 【SystemVerilog基础】关于随机化约束solve...before的深入探究

热门文章

  1. 好用的对比工具beyondcompare
  2. 设计模式学习(十四) 责任链模式 COR
  3. Simulink仿真传函必看——传递函数大集合(传函状态空间零极点模块)
  4. NVIDIA 7th SkyHackathon(五)图像数据集的处理
  5. 流浪地球:中国真正意义上的第一部硬科幻电影
  6. 解决conda install 出现的源报错问题
  7. 武汉中显液晶屏在电梯行业中的应用解决方案:
  8. audition笔记
  9. matlab 空气粘度函数,方腔内自然对流MATLAB程序数值传热学.pdf
  10. Ubuntu 16.04 - 64bit 下载 32位支持包