在项目开发中,接口请求是必不可少的,为了方便使用和维护,大家都会将接口请求的方法二次封装。下面小编将我项目中接口封装使用的方法分享给大家,希望可以帮到大家。喜欢的给个三连击再走哟。
目前前端常用的请求方式主要有两种:axios、Fetch。下面小编就这两种给大家详细的介绍介绍。 axios
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范。 特点
代码语言:javascript复制从浏览器中创建 XMLHttpRequest
支持 Promise API
客户端支持防止CSRF
提供了一些并发请求的接口(重要,方便了很多的操作)
从 node.js 创建 http 请求
拦截请求和响应
转换请求和响应数据
取消请求
自动转换JSON数据
兼容性问题 axios在PC端浏览器的兼容性问题
axios支持IE8 ,但原理是基于promise之上实现的,因此会存在不兼容IE的问题。
trident内核的浏览器下会报:vuex requires a Promise polyfill in this browser
解决方式:
代码语言:javascript复制安装 babel-polyfill
npm install babel-polyfill -s
代码语言:javascript复制安装成功以后需要在 main.js 中引入 babel-polyfill
一般会配置 webpack.base.config.js 中 entry
代码语言:javascript复制module.exports = {undefined
context: path.resolve(__dirname, ‘…/’),
entry: {undefined
app: [“babel-polyfill”, “./src/main.js”]
// app: ‘./src/main.js’
},
}
axios在安卓低版本兼容性处理
在较低版本的安卓手机中发现发现封装的axios请求无效,主要原因还是低版本的安卓手机无法使用promise
解决方式:
代码语言:javascript复制安装 es6-promise
npm install es6-promise -s
代码语言:javascript复制引入注册es6-promise
一定要在axios注册之前
// 注意: es6-promise 一定要在 axios 之前注册
promise.polyfill()
或者
require(‘es6-promise’).polyfill();
更多内容请见原文,文章转载自:https://blog.csdn.net/weixin_44519496/article/details/118514731