yutent 7983cb0b16 附件判断增加Blob类型 2023-02-17 11:00:40 +08:00
src 附件判断增加Blob类型 2023-02-17 11:00:40 +08:00
.gitignore init 2020-07-31 16:27:46 +08:00
.prettierrc.yaml 更新支持注入 2022-03-22 19:04:58 +08:00
LICENSE init 2020-07-31 16:27:46 +08:00
Readme.md 废弃__INI__方式注入 2022-03-22 19:36:17 +08:00
Readme@1.x.md 废弃__INI__方式注入 2022-03-22 19:36:17 +08:00
build.js 打包为大文件 2021-08-09 17:00:02 +08:00
package.json 附件判断增加Blob类型 2023-02-17 11:00:40 +08:00

Readme.md

ajax的全新封装

统一走fetch的风格。内置参数处理, 支持多实例。

浏览器兼容性

Chrome Firefox Safari Opera Edge IE
Latest ✔ Latest ✔ Latest ✔ Latest ✔ Latest ✔ 10+ ✔

版本

共有2个版本, 一个传统版本, 基于XMLHttpRequest; 另一个是新一代版本, 基于window.fetch()

注意:

由于window.fetch()只支持http/https协议, 所以在一些特殊的环境下(如electron等), 请使用传统版。

2个版本的区别

  1. 超时的返回值不一样。fetch版没有额外处理, 全由原生返回; 传统版为处理过, 统一返回Response对象

  2. 缓存参数不一致, 传统版只有传入no-store才不会缓存,其他任何值都会缓存, 缓存机制由headers及浏览器机制决定。 fetch版支持完整的参数, 详见原生fetch文档。

  3. 验证机制,传参不一样。传统版credentials为布尔值; fetch版本则是支持omit, same-origin, include。

示例

import fetch from '//dist.bytedo.org/fetch/dist/index.js'   // 传统版
// import fetch from '//dist.bytedo.org/fetch/dist/next.js'  // fetch版


fetch('/get_list', {body: {page: 1}})
  .then(r => r.json())
  .then(list => {
    console.log(list)
  })


// 创建一个新的fetch实例, 可传入新的基础域名, 和公共参数等
var f1 = fetch.create('//192.168.1.101', {headers: {token: 123456}})

f1('/get_list', {body: {page: 1}})
  .then(r => r.json())
  .then(list => {
    console.log(list)
  })


APIs

1. fetch(url[, options

全新的ajax封装。分2个版本, 一个基于XMLHttpRequest, 一个基于window.fetch
JavaScript 100%