# 前端发送请求 ajax

web前端发请求的几种常见方式

# XMLHttpRequest

如何优雅的使用 xhr

# jquery

jquery - ajax (opens new window)

# axios

基于 promise npm英文文档 (opens new window) 中文文档 (opens new window)

axios 是基于 promise 设计,旧浏览器不支持 promise,需要使用 polyfill。es6-promise (opens new window)

# fetch

fetch 并不是一个第三方库,它是 W3C 的正式标准。fetch 挂载在 BOM 中,可以直接在谷歌浏览器中使用。MDN - Fetch (opens new window)

浏览器兼容情况 (opens new window) 浏览器支持情况 (opens new window)

fetch API 是基于 promise 设计,旧浏览器不支持 promise,需要使用 polyfill。es6-promise (opens new window)

# fly

一个支持所有 JavaScript 运行环境的基于 Promise 的、支持请求转发、强大的 http 请求库。可以让您在多个端上尽可能大限度的实现代码复用。

目前 Fly.js 支持的平台包括:Node.js 、微信小程序 、Weex 、React Native 、Quick App 和浏览器,这些平台的 JavaScript 运行时都是不同的。更多的平台正在持续添加中,请保持关注。

中文文档 (opens new window)

Node 下 Fly 的功能要明显强于 axios,Fly 在 node 下不仅提供了文件下载、上传的 API,而且还可以通过 fly.$http 直接调用 request 库 (opens new window) 的所有功能,详情请参照 Node 下增强的 API (opens new window)