uniapp封装ajax请求

这篇具有很好参考价值的文章主要介绍了uniapp封装ajax请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

新建一个request.js

import '@/common/api/interceptor.js'; // 引入拦截器文件
export default{
	common:{
		baseUrl:"http://localhost:3000/api",
		data:{},
		header:{
			"Access-Control-Allow-Origin":"*",
			"Content-Type":"application/json",
			"Content-Type":"application/x-www-form-urlencoded"
		},
		method:"GET",
		dataType:"json"
	},
	//封装为选项对象
	request( options={} ){
		
		uni.showLoading({
		    title: '加载中'
		});
		
		options.url = this.common.baseUrl + options.url;
		options.data = 	options.data || this.common.data;
		options.header = options.header || this.common.header;
		options.method = options.method || this.common.method;
		options.dataType = 	options.dataType || this.common.dataType;
		return new Promise((res,rej)=>{
			uni.request({
				...options,
				success: (result) => {
					// if(result.statusCode===401)  进行类似过滤器的操作
					if(result.statusCode != 200){
						// 使其可以使用catch
						return rej();
					}
					setTimeout(function () {
					    uni.hideLoading();
					}, 1500);
					let data = result.data;
					// res里面就是请求体了 可以直接获取自己定义的code 和数据
					res(data);
				}
			})
		})
	}
}

这样就把uniapp的回调ajax封装为了resolve,这里还类似封装了axios的拦截器

// utils/interceptors.js



// 请求拦截器
uni.addInterceptor('request', {
  // 在发送请求之前执行
  invoke(request) {
    // 在请求发送前可以进行一些操作,例如添加请求头、设置认证信息等

	    request.header = {
	      'Content-Type': 'application/json', // 设置 Content-Type 请求头
	      'Authorization': 'Bearer your-token', // 设置 Authorization 请求头
	    };
    console.log('------请求拦截器------');
    return request;
  },
  // 请求出错时执行
  fail(error) {
    console.error('请求拦截器出错', error);
    return error;
  },
});

// 响应拦截器
uni.addInterceptor('response', {
  // 在响应返回之后执行
  invoke(response) {
    // 对响应数据进行处理
    console.log('响应拦截器');
	response.header={
		"Access-Control-Allow-Origin":"*"
	}
    return response;
  },
  // 响应出错时执行
  fail(error) {
    console.error('响应拦截器出错', error);
    return error;
  },
});

在其他compoent的js中使用文章来源地址https://www.toymoban.com/news/detail-685012.html

import http from '@/common/api/request.js';
//初始化
var init=()=>{
	http.request({url:"/index_list/data",
	}).then(res=>{
		console.log("封装的结果",res),
		topBar.value=res.data.topBar
	}).catch(e=>{
		console.log(e)
	})

到了这里,关于uniapp封装ajax请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第五节 (基于uni-app封装鸿蒙接口请求库)

      随着鸿蒙系统的兴起,越来越多的app会采用鸿蒙开发。而鸿蒙开发必不可少的就是调用各种接口服务。为了简化接口的调用流程,我们通常会做一层封装。今天就来讲解一下,如何用uni-app封装鸿蒙的接口请求库。   首先我们要新建一个鸿蒙项目啦!当然选择第一个空白项

    2024年02月02日
    浏览(45)
  • uniapp封装ajax请求

    新建一个request.js 这样就把uniapp的回调ajax封装为了resolve,这里还类似封装了axios的拦截器 在其他compoent的js中使用

    2024年02月10日
    浏览(31)
  • uni-app组件封装基本知识

            小写字母,单词用“ - ”链接例如(bj-item ) , 目录名称和文件名保持一致,官方默认把“ uni- ”开头的 组件全局挂载,不是这种格式的组件需要局部挂载。 1 、“ uni- ”开头的组件官方默认全局挂载  2、组件使用 随着Hbuilder的升级,现在组件统一放到uni_module

    2023年04月08日
    浏览(33)
  • uni-app/vue封装车牌选择器

    先看下效果如下: 代码如下: 父组件: 子组件:(代码较长,css部分没有提供)

    2024年01月18日
    浏览(42)
  • uni-app 封装 websocket 并且监听心跳机制

    新建 socket.js , 将以下代码复制进去 ,向外暴露。 在入口文件中 将 socketIO 挂载在 Vue 原型上 , 也可以按需引入置顶页面 。 在需要用到webSocket的页面中使用如下方法(可根据自身业务需求进行整改) 离开页面,记得断开连接。

    2024年02月11日
    浏览(35)
  • 『UniApp』uni-app-打包成App

    大家好,我是 BNTang, 在上一节文章中,我给大家详细的介绍了如何将我开发好的项目打包为微信小程序并且发布到微信小程序商店 趁热打铁,在来一篇文章,给大家详细的介绍如何将项目打包成APP。 打包 App 也是一样的,首先需要配置关于 App 应用的基础信息,打开 manifest

    2024年02月04日
    浏览(53)
  • uni-app封装省市区下拉组件(后台获取数据)

    一.后台数据格式  PROCINCE:[{itemName:\\\'\\\',itemValue:\\\'\\\'}] CITY:[{itemName:\\\'\\\',itemValue}] AREA:[{itemName:\\\'\\\',itemValue}] 前端将地址数据缓存在了pinia中 前端主要使用picker进行勾选 二.代码

    2024年02月12日
    浏览(39)
  • uni-app中调取接口的三种方式与封装uni.request()

    1、uni.request({}) 2、uni.request({}).then() 3、async/await 1、创建一个对象,将该对象挂在Vue的原型下 新建 @/common/request.js 文件 初步写法(仅供参考): 二次更改: 2、进入main.js文件 例:在任意文件中书写下列代码可以调用。 this.$Z.get(); 3、在页面中调用 uniapp的网络请求方法 CODE u

    2024年02月09日
    浏览(33)
  • uni-app:请求后端数据uni.request

     完整代码: 核心 使用的方法 uni.request({...});  与接口相连接的路径 注:这里标红的部分为全局变量 例如: url:\\\'https://域名/api/Produce/select_employee\\\'(表示在使用该域名下的api中的Produce文件的select_employee方法) url: getApp().globalData.position + \\\'Produce/select_employee\\\', 传入数据到后端 

    2024年02月16日
    浏览(33)
  • uni-app - 实现监听路由跳转,每次跳转的时候都能触发的事件(当页面路由发生变化时,触发一个封装好的请求接口或普通功能函数)全端兼容,高效简洁无 BUG 详细教程

    当用户点击任意页面时(路由发生变化),自动执行一个函数,调用接口请求数据、做任何事情。 由于涉及到全部页面,必须采用统一的入口和统一的执行函数,不可能一个页面写一次!! 基于这个需求,本文实现了 全局统一监听路由跳转,当页面发生变化时自动触发某个

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包