当前位置: 首页 > news >正文

郑州个人网站制作公司百度站长工具网站认证

郑州个人网站制作公司,百度站长工具网站认证,广告制作公司名字,汕头优化网站最近在学Uniapp#xff0c;到封装请求的时候本来还想用axios#xff0c;但是看到一些教学视频有更简单的方法#xff0c; 基于uni的拦截器和Promise封装的请求函数 但是他们是用TS写的#xff0c;还没学到TS#xff0c;我就把JS写了#xff0c;最终也是请求成功 // src/…最近在学Uniapp到封装请求的时候本来还想用axios但是看到一些教学视频有更简单的方法 基于uni的拦截器和Promise封装的请求函数 但是他们是用TS写的还没学到TS我就把JS写了最终也是请求成功 // src/utils/http.jsimport { useUserStore } from ../stores/modules/user// 请求基地址 const baseURL https://pcapi-xiaotuxian-front-devtest.itheima.net// 拦截器配置 const httpInterceptor {// 拦截前触发invoke(options) {// 1. 非 http 开头需拼接地址if (!options.url.startsWith(http)) {options.url baseURL options.url}// 2. 请求超时options.timeout 10000// 3. 添加小程序端请求头标识options.header {source-client: miniapp,...options.header,}// 4. 添加 token 请求头标识const userStore useUserStore()const token userStore.getToken() ? userStore.getToken() : if (token) {options.header.Authorization token}}, }// 拦截 request 请求 uni.addInterceptor(request, httpInterceptor) // 拦截 uploadFile 文件上传 uni.addInterceptor(uploadFile, httpInterceptor)export const http (options) {return new Promise((resolve, reject) {uni.request({...options,success(res) {if (res.statusCode 200 res.statusCode 300){resolve(res.data)} else if ( res.statusCode 401){const userStore useUserStore()userStore.removeToken()uni.navigateTo({ url: /pages/login/login })reject(res)} else {uni.showToast({icon: none,title: (res.data).msg || 请求错误,})reject(res)}},fail(err) {uni.showToast({icon: none,title: 请求失败,})reject(err)}})}) } 组件引入http方法进行请求 最后附上TS的写法感觉其实差不多只是用TS语法进行了一下泛型的判断 // src/utils/http.ts// 请求基地址 const baseURL https://pcapi-xiaotuxian-front-devtest.itheima.net// 拦截器配置 const httpInterceptor {// 拦截前触发invoke(options: UniApp.RequestOptions) {// 1. 非 http 开头需拼接地址if (!options.url.startsWith(http)) {options.url baseURL options.url}// 2. 请求超时options.timeout 10000// 3. 添加小程序端请求头标识options.header {source-client: miniapp,...options.header,}// 4. 添加 token 请求头标识const memberStore useMemberStore()const token memberStore.profile?.tokenif (token) {options.header.Authorization token}}, }// 拦截 request 请求 uni.addInterceptor(request, httpInterceptor) // 拦截 uploadFile 文件上传 uni.addInterceptor(uploadFile, httpInterceptor)type DataT {code: stringmsg: stringresult: T } // 2.2 添加类型支持泛型 export const http T(options: UniApp.RequestOptions) {// 1. 返回 Promise 对象return new PromiseDataT((resolve, reject) {uni.request({...options,// 响应成功success(res) {// 状态码 2xx参考 axios 的设计if (res.statusCode 200 res.statusCode 300) {// 2.1 提取核心数据 res.dataresolve(res.data as DataT)} else if (res.statusCode 401) {// 401错误 - 清理用户信息跳转到登录页const memberStore useMemberStore()memberStore.clearProfile()uni.navigateTo({ url: /pages/login/login })reject(res)} else {// 其他错误 - 根据后端错误信息轻提示uni.showToast({icon: none,title: (res.data as DataT).msg || 请求错误,})reject(res)}},// 响应失败fail(err) {uni.showToast({icon: none,title: 网络错误换个网络试试,})reject(err)},})}) }
http://www.hkea.cn/news/14529722/

相关文章:

  • 与小学生一起做网站为什么做企业网站
  • 网站开发需要用到哪些技术租服务器去哪里租
  • 广州市公司网站建设品牌江苏强荣建设有限公司网站
  • 做网站时给网页增加提醒潍坊百度seo公司
  • 给网站加织梦后台小广告治理
  • 网站建设嘉兴wordpress更换主题帖子封面不显示
  • 做网站上哪买空间平湖建设局网站
  • 深圳微商城网站设计制作wordpress添加注册页面模板
  • 织梦做的网站怎么发布杭州公司建网站
  • 揭阳网站制作机构可编辑wordpress主题
  • 大兴网站制作青海建设厅网站尚少岩
  • 赣州网站建设怎样晋江论坛网友交流留言区
  • 三星网站建设内容爱情动做网站推荐
  • 手机网站APP网络推广商城网站社群运营
  • 详情页设计模板网站门户网站都有哪些内容
  • 做旅游网站的yi鲜花网页设计模板
  • 地域名网址ip查询团购网站如何优化
  • 网站建设方案书域名备案菏泽网站建设
  • 网站 wap 插件婚恋网站女孩子都是做美容
  • 寿光网站建设推广大连金州代做网站公众号
  • 外国永久网站广州建筑集团网站
  • 南昌网站定制phpcms做视频网站
  • dedecms游戏门户网站源码卓手机建网站
  • 整人关不掉的网站怎么做虚拟机怎么做多个网站
  • 图片链接生成网站宜城网站建设哪家好
  • 中国水利教育培训网站选择网站建设公司好
  • 网站建设和执纪监督怎么联系地推公司
  • 邢台移动网站建设价格郴州建设工程建设信息网站
  • 中山市网站开发外包公司全国前十装饰公司排名
  • 郑州汉狮专业做网站公司dede导入wordpress