遇到问题:

最近在对接微信小程序和java后端springboot框架的接口,然后发现一个问题,当微信小程序发起http请求时,如果请求参数的值为空,传到java后端时就变成了undefined,这样情况如果后端程序员没有做来判断,就可能导致数据库查询失败。

原因分析:

1、先来看看我之前出错的js代码:

const app = getApp();
const http = require("../../utils/http.js");
Page({/*** 页面的初始数据*/data: { dataList:[]},//选择省ChangeProvinceCode(e){let name=e.target.dataset.name;this.setData({provinceName: name,})this.getCity()},//选择市ChangeCityCode(e){var that=this;let name=e.target.dataset.name;that.setData({cityName: name,})that.getDataList()},// 获取地点省getArea(){const that = thisconst params = {url: 'https://后端请求地址/selectArea',method: 'GET',callBack: function(res) {if(res.code == 200) {that.setData({AreaItems: res.data})}}}http.request(params)},// 获取地点市getCity(){const that = thisconst params = {url: 'https://后端请求地址/selectArea',method: 'GET',data:{pId: that.data.provinceId},callBack: function(res) {if(res.code == 200) {that.setData({Citytems: res.data})}}}http.request(params)},// 获取数据列表getDataList(){let that = thisconst params = {url: 'https://后端请求地址/getUserList',method: 'GET',data: {provinceName: that.data.provinceName, //省份cityName: that.data.cityName, //城市},callBack: res => {if(res.code==200){            that.setData({dataList: res.data})}}}http.request(params)},
})

2、getDataList()里需要传递2个参数到后端API接口请求数据,这两个参数需要用户在界面上选择省份或者城市后才可以获得。

3、问题来了,当用户没有选择省份和城市,我们去调用 getDataList()方法函数,provinceName和cityName这2个参数就是未定义的,传到java后端控制器变成了undefined

4、如果java后端没有判断参数值为undefined的情况,那么当我们的参数值为undefined时,就会查询不到需要的数据:

5、 参数真正为空时,查询的结果如下:

6、是不是很神奇,哎,说不出的累 ~

解决方法:

在页面的初始数据data: { }中定义查询的参数,这样就不会出现参数未定义就使用的情况,也就不会出现参数传到后端变为undefined这种问题了。

Page({/*** 页面的初始数据*/data: { dataList:[],provinceName:'',cityName:'',},})

解决“微信小程序http请求参数为空时,传到java后端变成了undefined”问题相关推荐

  1. android post请求时报415错误,解决微信小程序用 SpringMVC 处理http post时请求报415错误...

    解决微信小程序用 SpringMVC 处理http post时请求返回415错误 写微信小程序时遇到的问题,这个坑硬是让我整了半天 wx.request请求跟ajax相似处理方法一致javascrip ...

  2. 解决微信小程序的wx-charts插件tab切换时的显示会出现位置移动问题-tab切换时,图表显示错乱-实现滑动tab

    解决Echarts在微信小程序tab切换时的显示会出现位置移动问题 tab切换时,图表显示错乱 <canvas class="kcanvas" canvas-id=" ...

  3. 微信小程序request请求后台接收不到参数问题

    微信小程序request请求后台接收不到参数问题 一. 小程序部分代码 二. 后端 三. 问题代码 四. 请求头 一. 小程序部分代码 发一个普通的request请求 wx.request({url: ...

  4. 微信小程序request请求封装;微信小程序封装request请求;uni-app小程序封装request请求;

    本片封装了微信小程序request请求:为别是post get put请求,重点在request.js文件 1.新增四个文件 2.根目录下的utils下的request.js封装uni.request ...

  5. 微信小程序POST请求400错误

    微信小程序POST请求400错误 错误 解决方案 若需将请求数据以json的格式发送, 添加以下请求头 header: {"Content-Type": "applica ...

  6. mpvue微信小程序http请求-fly.js

    mpvue微信小程序http请求-fly.js fly.js是什么? 一个支持所有JavaScript运行环境的基于Promise的.支持请求转发.强大的http请求库.可以让您在多个端上尽可能大限度 ...

  7. 设置微信小程序支持npm(解决微信小程序npm构建时提示“没有找到可以构建的NPM包,请确认需要参与构建的npm都在miniprogramroot目录内,或配置project...”错误)的方法

    提示:通过微信开发者工具创建小程序工程后,默认是不开启npm的,需要修改小程序npm配置参数,否则将会提示"没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 minipro ...

  8. php小程序中的页面如何换行,解决微信小程序scroll-view换行问题

    今天在写小程序的时候使用了scroll-view,但是发现在scroll-view中一行文字不能换行,代码如下: asdhadjhkajshdkjahsdkjasdajsdhkajsdkajsdkaj ...

  9. 微信小程序如何请求数据

    微信小程序呢不存在ajax,那么它是如何实现数据请求功能的呢? 在微信官方文档中提供了API的调用wx.request()来请求数据 在数据请求之前,我们需要把微信小程序数据请求的坑过一遍 1:微信小 ...

最新文章

  1. 块格式化上下文(Block formatting contexts)
  2. 整理前端css/js/jq常见问题及解决方法(3)
  3. python的字符串类型本质上_4.3Python数据类型(3)之字符串类型
  4. 基本图形的光栅化算法
  5. java contains 通配符_java删除文件支持通配符
  6. CF605C. Freelancer's Dreams
  7. Flask爱家租房--城区信息
  8. Kubelet 源码剖析
  9. 问题 A: 【动态规划】采药_二维数组_一维数组
  10. SQLSERVER的视图、函数、存储过程、触发器
  11. Java语法——标识符,关键字,数据类型,变量常量介绍
  12. 线性代数科学出版社课后练习题答案
  13. 马哥linux脚本,马哥全套linux运维教程
  14. 三菱FX3U——红绿灯
  15. iOS上架App Store详解(图文)
  16. 计算机局域网络具有哪些功能,局域网的功能有哪些
  17. 大数据之VMware和centos7安装
  18. [渗透测试][Kali]对DC-2靶机进行渗透测试
  19. 水军为手机应用软件排名造假
  20. 从Waze被收购看谷歌与苹果的地图领域之战

热门文章

  1. parasolid 原因 效率_PARASOLID 25.0提供众多用户驱动型增强特性 助力提升工作效率...
  2. 使用jOrgChart插件生成组织结构图
  3. 我常用的15个数据源网站!
  4. 学生信息管理系统:实现对学生信息增删改查操作
  5. adb介绍、下载安装、使用
  6. Debug的使用方法(转)
  7. 程序:显示法定格式的日期合同和其他法律文档中经常使用下列日期格式: Dated this day of ,19 .
  8. 具体数学笔记 第3章高德纳数的证明与取模二元运算
  9. pull 仓库 设置docker_Java8之熟透Optional
  10. 移动联通基站接口文档