微信小程序与后端交互(ssm)
2020-5-18更新
App({
/**
* 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
*/
onLaunch: function () {
},
/**
* 当小程序启动,或从后台进入前台显示,会触发 onShow
*/
onShow: function (options) {
},
/**
* 当小程序从前台进入后台,会触发 onHide
*/
onHide: function () {
},
/**
* 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
*/
onError: function (msg) {
}
})
app.js是面向全局的,可以把全局变量放在这里。
app.json ,配置显示的页面顺序,这里先显示index页面
{
"pages": [
"pages/index/index"
]
}
index.wxml wxml格式类似于html,都是便签语言,他们的特性也类似。具体可以到开发者文档详查。
<navigator url="http://localhost:81/toWechat/get.do">
<text>id:{
{
user.id}}
</text>
<text>name:{
{
user.name}}</text>
</navigator>
该页面从index.js中拿数据
id:,
name:
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.request({
url: http://locahost:8080/toWechat/get.do, //仅为示例,并非真实的接口地址
header: {
content-type: application/json // 默认值
},
success: function (res) {
console.log(res.data)
this.setDate({
id:res.id,
name:res.name
})
}
})
},
})
但是问题就出在这里:wx.request中的url路径是不能包含localhost的,如下: 一般开发中都要在个人电脑上进行测试,这里我们要把小程序编译器的不验证合法域名打开,这样我们就可以在本地服务器上进行测试了,也可以使用localhost本地地址来测试了。
接下来就开始前后端交互了
SSM与微信小程序
创建index.js,index.json,index.wxml,index.wxss
index.wxml页面布局
<button bindtap=houduanButton1>点击发起请求</button>
<!-- 触发事件后,在js中,到后端获取数据,赋给list -->
<view wx:for="{
{list}}">
id:{
{
item.id}}
姓名:{
{
item.name}}
</view>
<view>
{
{
list[0].name}}
</view>
点击按钮触发houduanButton1,到后端获取数据 index.js
Page({
/**
* 页面的初始数据
*/
data: {
list:
},
//触发事件
houduanButton1: function () {
var that = this;
wx.request({
url: http://localhost:8080/toJson.do,
method: GET,
header: {
content-type: application/json // 默认值
},
success: function (res) {
//成功交互后触发
console.log(res.data)//打印到控制台
var list = res.data.list;
if (list == null) {
var toastText = 数据获取失败;
wx.showToast({
//弹窗提示
title: toastText,
icon: ,
duration: 2000
});
} else {
that.setData({
list: list
})
}
}
})
} ,
})
下面是后端的代码实现: 使用的是springmvc来处理前端请求,且小程序接收的是json格式的数据,要加上@RequestBody将返回的数据转为json格式。
@RequestMapping("/toJson.do")
@ResponseBody
public Map<String,String> toJson(){
Map<String,String> map= new HashMap<String,String>;
map.put("id","1");
map.put("name","lin");
return map;
}
这时候启动服务器,点击小程序的按钮,就可以获取到数据了。 (提示,如果springmvc有加拦截器的话,要把上面的请求地址设为不拦截,不然就会没响应)
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
Java实现微信小程序发送服务通知
