uniapp开发日志

2023-10-26

bug:将Base64的编码解码看错。

uniapp封装uni.request方法

 import utils from './js/utils.js';
 
 let debug = false;
 if (process.env.NODE_ENV === 'development') {
     debug = true;
 }
 
 const showLoading = function(title = "加载中") {
     uni.showLoading({
         title: title,
         mask: true,
     });
 }
 const hideLoading = function() {
     uni.hideLoading();
 }
 
const uniRequest11 = function(params, url) {
	console.log(params);
    params.method = (params.method || 'GET').toLocaleUpperCase(); // 请求类型
    params.data = params.data || {};
    params.header = params.header || {
        'Content-Type': 'application/json'
    };
    params.dataType = params.dataType || 'json';
    params.responseType = params.responseType || 'text';
	params.timeout = 6000
    if (params.isLoading) {
        if (params.isLoading === true) {
            params.isLoading = '加载中'; // 数据请求默认loading显示的文字
        }
        showLoading(params.isLoading); // 显示loading
    }
	console.log('params',params);
    uni.request({
        ...params,
		url:url,
        success: res => {
            if (res) {
				console.log(res);
                params.isLoading && hideLoading(); // 关闭loading
                if (res.statusCode == 200) {
                    let result = res.data;
                    if (result.errorCode >= "0") {
                        params.success && params.success(result);
						return
                    } 
					if(result.errorCode < "0"){
						params.success && params.success(result);
						// utils.msg(result.errorText)
						return
					}
					else {
                        params.fail && params.fail(result);
                    }
                } else {
                    if (debug) {
                        console.log('接口报了' + res.statusCode + '喔--------------------start');
                        console.log('url:' + params.url);
                        console.log('method:' + params.method);
                        console.log('data:' + JSON.stringify(params.data));
                        console.log('接口报了' + res.statusCode + '喔--------------------end');
                    }
					if (err.errMsg == "request:fail timeout") {
						proxy.$utils.msg("请求超时拉,请检查网络");
						// return
					}
                    params.fail && params.fail(res);
                }
            }
        },
        fail: err => {
            params.isLoading && hideLoading(); // 关闭loading
            if (debug) {
                console.log('uni.request报错咯--------------------start');
                console.log('url:' + params.url);
                console.log('method:' + params.method);
                console.log('data:' + JSON.stringify(params.data));
                console.log(JSON.stringify(err));
                console.log('uni.request报错咯--------------------end');
            }
            params.fail && params.fail(err);
        },
        complete: res => {
            params.complete && params.complete(res);
        }
    });
}
export {
    uniRequest11
}

封装时需注意携带过去的数据,有可能后台接受是会报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

uniapp开发日志 的相关文章

  • jQueryUI 可拖动 + 可排序错误(无法读取未定义的属性“选项”)

    我的问题似乎类似于这个问题 从可排序列表拖动到拖放插件 https stackoverflow com questions 17928139 dragging from a sortable list to a drag and drop
  • 在 JavaScript 中动态创建 SVG 链接

    我正在从 JavaScript 动态创建 SVG 元素 它对于像矩形这样的视觉对象工作得很好 但是我在生成功能性的 xlinks 时遇到了麻烦 在下面的示例中 第一个矩形 静态定义 在单击时可以正常工作 但其他两个 用 JavaScript
  • 修复js“脚本错误”

    我在实现一些简单的事情时遇到困难 我有一个 index html 文件http 本地主机 3200 http localhost 3200由 ruby on Rails 编写 它使用 javascript 文件http 本地主机 8000
  • 如何仅使用 jQuery 垂直调整 DIV 大小 - 无需插件?

    Edit 我把这段代码放在jsbin中 http jsbin com eneru http jsbin com eneru 我试图让用户使用 jQuery 调整 DIV 元素的大小 仅垂直 我读到了有关 jQuery UI 的内容 我尝试了
  • JavaScript 中的奇怪字符导致其无法加载

    我的网站在本地主机上运行良好 我的 JavaScript 正在加载并运行良好 但是当我部署站点时 脚本不起作用 当我右键单击页面并说查看源代码 然后查看链接的脚本文件时 文件开头有一些奇怪的字符 函数 在本地主机上 我的脚本文件像这样开始
  • JavaScript/jQuery - offsetLeft 和 offsetTop

    当鼠标悬停在跨度上时 我想获取 offsetLeft 和 offsetTop 值 以便我可以将某些东西悬停在它附近 当我这样做时 两个值都为 0 有什么更好的方法来解决这个问题 我正在使用 jQuery 假设我开始 由服务器端脚本循环 sp
  • 递归算法无法在指定时间内完成测试

    我正在进行一项测试 需要二进制断层扫描算法 提供了一组 38 个测试值来测试正确性 但完成所有测试也有 1 CPU 秒的时间限制 问题如下 如果存在 m n 矩阵 A 且每个元素为 0 或 1 则输出 Yes 使得 否则输出 否 对于每个测
  • Math.min.apply 对于 null 返回 0

    我想从数组中获取最小值 如果数据包含null value Math min apply回报0 for null价值 请参见这个 JSFiddle 示例 http jsfiddle net jeryslo 7DCXw 即使数组中存在空值 如何
  • 如何使用jquery打开选择输入

    所以我可以看到选择元素的选项 但我需要单击它 如果我想使用一个函数怎么办 当发生某些事情时 应该选择此选择元素 这意味着列表已打开并且我可以看到选项 我不希望用户单击选择元素 我想要其他东西来打开它 我尝试过的 select select
  • 如何使用 Jade 和 Node.js 迭代 JSON 数组

    所以我有这个 JSON 数组apiData被传递到视图作为data Backend router get function req res var data JSON stringify apiData res render gallery
  • AngularJS 阻止 symfony2 表单中的提交按钮

    我在 symfony2 中创建了表单 最后呈现了提交表单的按钮 当我添加ng app myApp 一切正常 但我无法提交此页面上的表单 为什么会这样以及如何解锁 FORM gt add company choice array mapped
  • 如何使用 JavaScript 四舍五入到任意数量的有效数字?

    我尝试了下面的示例代码 function sigFigs n sig if n 0 return 0 var mult Math pow 10 sig Math floor Math log n lt 0 n n Math LN10 1 r
  • AngularJS:如何显示预加载或加载直到页面完全加载?

    我有一个图像库网站 我在控制器中以 json 格式从数据库获取所有图像和图像相关数据 然后使用 ng repeat 将它们与 html 绑定 现在 数据加载较早 但图像加载较晚 因此图像比较分散 怎么解决这个问题 我不想使用 setTime
  • 如何从 JavaScript 使用 Opus 编解码器

    我想看看是否可以使用直接访问 OpusgetUserMedia或最新浏览器中的任何类似内容 我对此进行了很多研究 但没有取得好的结果 我知道 Opus 或 Speex 实际上用于webkitSpeechRecognitionAPI 我想做语
  • 使用 MUI 按钮时:类型错误:无法读取未定义的属性“borderRadius”

    import React Component from react import App css import Screen from components Screen Screen import Button from componen
  • 将 D3 svg 保存为高质量图像

    有没有办法将 D3 SVG 图像保存为高质量图像 如果是的话请解释一下 截至目前 我正在使用以下代码将 svg 保存为图像 但我得到的图像质量不高 var canvas1 document createElement canvas canv
  • 如何追踪正在修改 DOM 中 div 内联样式的 JavaScript?

    我正在搞乱 WordPress 插件 当我从顶部向下滚动大约 50 像素时 div 标签的内联样式属性正在发生变化 我怎样才能找出造成这种变化的原因 有 Chrome 功能或开发工具可以指向它吗 Try the Chrome 开发工具时间轴
  • 如何在fabricJS中通过鼠标选择被覆盖的对象?

    我正在尝试开发一种方法来选择分层在下面并 完全 被其他对象覆盖的对象 一种想法是选择顶部对象 然后通过doubleclick向下穿过层层 这就是我现在得到的 var canvas new fabric Canvas c fabric uti
  • vue/vuetify 模态模式或最佳实践设计

    在我正在开发的应用程序中 我们有很多模态 每个模态包含少量数据 通常是 2 3 个字段 有时是复选框 列表等 问题是当组件关闭时如何从内部重置 销毁组件 造成这种情况的原因有两个 1 不必清除每个模式上的各个数据字段 2 当第二次打开模式时
  • 使用 Jest 模拟 Es6 类

    我正在尝试使用接收参数的构造函数来模拟 ES6 类 然后使用 Jest 模拟该类上的不同类函数以继续测试 问题是我找不到任何有关如何解决此问题的文档 我已经看过了这个帖子 https stackoverflow com questions

随机推荐

  • OFDM插入导频过程详解

    ofdm符号的长度 有效数据 cp的长度 cp就是将有效数据的后半部分1 4截取并添加到有效数据的开始部分 比如一个ofdm符号的长度为4us 那么有效数据的长度为3 2us cp的长度为0 8us 子载波的间隔 1 有效数据的长度 就是有
  • Unity使用c#开发遇上的问题(十三)(unity平台下使用 Vuforia 以及 ARFoundiation 的总结,根据个人观点)

    文章目录 前言 一 Vuforia的使用感觉 二 ARfoundiation的使用感觉 总结 前言 有一段时间没有更新系列的内容 上次更新完又重新思考了一下以后进行的方向 这里就目前接触的Vuforia 和 unity 自带的AR 之前叫A
  • 自动生成根据mysql表创建hive表脚本

    bin bash source etc profile 该脚本为手动传参根据MySQL表信息创建hive表 输入参数判断逻辑 必须数据两个参数 一个是MySQL库名 第二个是表名 if eq 2 then db name 1 mysql 库
  • 浅析java垃圾回收机制

    一 什么是垃圾回收 1 垃圾回收 顾名思义 便是将已经分配出去的 但却不再使用的内存回收回来 以便能够再次分配 在 Java 虚拟机的语境下 垃圾指的是死亡的对象所占据的堆空间 垃圾回收只会负责释放那些对象占有的内存 此时对象也就被销毁 2
  • 0长度数组的使用,重点掌握的知识

    0长度的数组在ISO C和C 的规格说明书中是不允许的 但是GCC的C99支持的这种用法 GCC对0长度数组的文档参考 Arrays of Length Zero 如下代码片段 哪个更简洁更灵活 看一眼就知道了 include
  • 用vscode开发autojs,输出窗口不显示任何输出结果

    我的情况是 我vscode开发autojs 程序 之前在一切正常的情况下 输出窗口可以正常显示程序运行结果 右侧红圈里可以选择我连接的手机型号 如下图 但是现在出现问题 就是输出窗口不显示任何结果 在右侧的选项卡里也找不到我的手机型号 之前
  • 2021年全球与中国龙胆苦苷行业市场规模及发展前景分析

    2021年全球与中国龙胆苦苷行业市场规模及发展前景分析 本报告研究全球与中国市场龙胆苦苷的发展现状及未来发展趋势 分别从生产和消费的角度分析龙胆苦苷的主要生产地区 主要消费地区以及主要的生产商 重点分析全球与中国市场的主要厂商产品特点 产品
  • (R,线性回归)R语言里的模型诊断图(Residuals vs Fitted,Normal QQ , Scale-Location ,Residuals Leverage)

    线性回归 是概率统计学里最重要的统计方法 也是机器学习中一类非常重要的算法 线性模型简单理解非常容易 但是内涵是非常深奥的 尤其是线性回归模型中的Diagnostics plot的阅读与理解一直被认为是线性回归中的一个难点 在任何线性模型中
  • 获取微信公众号地址的图片不能正常显示的问题

    获取微信公众号地址的图片不能正常显示的问题 目前已经获取微信公众号发布的图片 但不能正常显示 提示 此图片来自微信公众平台 未经允许不得引用 看了一下他的地址是这样的 https mmbiz qpic cn mmbiz jpg ic70qV
  • Codeforces Round #291 (Div. 2)

    题目链接contest 514 A Chewba ca and Number 不允许有前导零 所以如果第一位是9的话 需要特别考虑 一开始理解错了题意 又WA了呜呜呜 include
  • 弱密码测试工具blaster使用演示

    声明 出品 安全客 以下内容 来自安全客作者原创 由于传播 利用此文所提供的信息而造成的任何直接或间接的后果和损失 均由使用者本人负责 长白山攻防实验室以及文章作者不承担任何责任 关于blaster blaster是一款强大的弱密码隐患检测
  • RabbitMQ-Java 简单使用

    RabbitMQ Java 入门案例 参考非常详细的博主教程 https www cnblogs com dtdx p 14362760 html SpringBoot Java 版教程 https blog csdn net lgl782
  • 【C/C++】智能指针

    文章目录 1 智能指针的原理 1 1RAII 1 2实现一个自己的智能指针 1 2 1拷贝出现的二次析构问题 2 标准库中的智能指针 2 1std auto ptr 2 2std unique ptr 2 3std shared ptr 2
  • ovs-vswitchd的启动分析

    ovs vswitchd的启动分析 无修改源码 一 主要数据结构和概念了解 1 概念 在 OVS 中 有几个非常重要的概念 Bridge Bridge 代表一个以太网交换机 Switch 一个主机中可以创建一个或者多个 Bridge 设备
  • 解决:DevTools failed to load SourceMap:... net::ERR_HTTP_RESPONSE_CODE_FAILURE的问题

    Google chrome开发人员控制台中一直报此错误 虽然只是一个警告 但是体验还是非常不好 先说解决方案 第一种 在Google chrome浏览器调试工具中 设置该调试工具 点开之后选择Settings 关闭此选项 虽然这种方式是隐藏
  • 小白的福音:零基础入门机器人操作系统ROS

    小小的机器人 如何运作 如何操作 作为一名程序员 你不想了解吗 今天就给大家解密 机器人操作系统ROS 今天分享的课程采用由浅入深 层层递进的讲解方式 让你0基础轻松入门ROS机器人操作系统 并利用ROS框架开发硬件驱动 课程亮点 1 课程
  • Numpy 实现全连接神经网络

    神经网络与深度学习实验报告 一 实验名称 Numpy 实现全连接神经网络 二 实验要求 用 python 的 numpy 模块实现全连接神经网络 网络结构为一个输入层 一个隐藏层 一个输出层 隐藏层的激活函数为 Relu 函数 输出层的激活
  • Qt系列文章之 QTabWidget

    上一篇文章介绍如何对QMessgeBox进行使用 本文紧接上文内容继续对Qt的窗体文件开发介绍 一般主界面会有很多控件和交互区域 如果把所有的控件都放在一个界面全部显示 整个界面就会显得非常臃肿繁琐 那么使用分页式的表格窗体布局就能将不同类
  • STM32 从APP跳入BootLoader问题

    在这次项目中 程序从APP跳入BootLoader主要遇到两个问题 做个记录 1 现象 跳入BootLoader后还没开始升级便重启 原因 APP程序中开启了独立看门狗 当跳入BootLoader时看门狗也继续计时 但并没有重新喂狗 因此导
  • uniapp开发日志

    bug 将Base64的编码解码看错 uniapp封装uni request方法 import utils from js utils js let debug false if process env NODE ENV developme