Page({
/**
* 页面的初始数据
*/
data: {
isLogin:0, //0代表未登录,1代表登录
userInfo:{}, //用户信息
avatarUrl:'', //头像
account:0 //用户余额
},
/**
* 微信接口,获取用户信息的
*/
getUserInfo:function(e){
//获取当前使用这个小程序的用户信息
var userInfo = e.detail.userInfo;
wx.setStorageSync('avatarUrl', userInfo.avatarUrl);
var data ={
name:userInfo.nickName,
code:userInfo.avatarUrl,
nickName:userInfo.nickName,
password:"123456",
account:80000
}
//注册兼登录的作用,指向后端
request({url:"/register",method:"POST",data:data}).then(res =>{
if(res.code === '0'){
wx.showToast({
title: '登录成功',
mask:true
})
//存储本地数据
this.setData({
isLogin:1,
userInfo:res.data
});
//存到localStorage本地缓存里
wx.setStorageSync('user', res.data)
}else{
//失败提示
wx.showToast({
title: '登录失败',
mask:true
})
}
})
},
后端:
@PostMapping("/register")
public Result register(@RequestBody UserInfo userInfo,HttpServletRequest request){
if(StrUtil.isBlank(userInfo.getName())||StrUtil.isBlank(userInfo.getPassword())){
throw new CustomException((ResultCode.PARAM_ERROR));
}
//这里面的简单判断用户name是否已经注册过交给下面的add()方法
UserInfo register = userInfoService.add(userInfo);
HttpSession session= request.getSession();
session.setAttribute(Common.USER_INFO,register);
session.setMaxInactiveInterval(60*60*24);//一天存活
return Result.success(register);
}
你从后台拿数据用get,往后台发数据用post
request 代码看不到,支持method修改吗?
405 http 规范定义是 method not allowed,但是后端是可以修改的,其他的错也可以返回405,后端有报错吗?
这个请求后台的接口地址路径是不是拼错了,/register这个控制器的路径呢
感谢各位朋友的回答,问题之后已经解决了,是前端被引用的方法里漏了个请求方式的没有重写,导致wx.request采用了默认的请求方式了