微信小程序调用后端接口读取数据

小程序端页面的编写:

      <form bindsubmit="formSubmit" bindreset="formReset">
            <view class='title'>登录</view>
            <view class='inp'>
                <input type="text" name="username" value="{{username}}" placeholder="请输入账号" />
            </view>
            <view class='inp'>
                <input class="inputText" type="password" name="password" value="{{password}}" password="true" placeholder="请输入密码" />
            </view>
            <view class='login-btn'>
                <button class="btn1" type="primary" size="mini" form-type='submit'>
                    登录
                </button>   
            </view>
        </form>

formSubmit函数中定义var username和password接受从页面传过来的值, data数据以键值对的形式传入请求参数http://localhost:8081/Examination_System/wxlogin?username=admin&password=123,对就如你看到的这个链接后的参数,就是起到这样的作用。

 formSubmit: function (e) {
    // form 表单取值,格式 e.detail.value.name为小程序端输入的值(name为input中自定义name值)
    var that = this;
    var username = e.detail.value.username;
    var password = e.detail.value.password;
   //通过url链接调用后端接口wxlogin读取后端的用户名和密码
    wx.request({
      url: "http://localhost:8081/Examination_System/wxlogin",
      data: {
        'username': username,
        'password': password,
      },
      method: "POST",
      header: {
        'content-type': 'application/x-www-form-urlencoded'//注意个人使用application/json获取不到数据
      },
      success: function (res) {//res.data.XXX是取到后端的数据如果和admin是等的就显示登录成功跳转的相应的小程序页面
        if (res.data.role == "admin") {
          wx.showToast({
            title: '登录成功',
            icon: 'success',
            duration: 20000
          })
          setTimeout(function(){
            wx.hideToast();
          }),
            wx.navigateTo({
              url: '/pages/admin/admin/index?username=' + res.data.username,
            })
        } else {
          wx.showToast({
            title: '账号或密码错误',
            icon: 'loading',
            duration: 2000
          })
        }
      }
    })
  }

SSM框架的controller层,编写用户登录的wxlogin接口,用map集合封装,小程序端取数据res.data.map集合中的属性值


    @RequestMapping(value = "/wxlogin", method = {RequestMethod.POST,RequestMethod.GET})
    @ResponseBody
    public Map<String,String>  wxlogin(Userlogin userlogin, Model model) throws Exception{

        //Shiro实现登录
        Map<String,String> map = new HashMap<String, String>();
        UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),
                userlogin.getPassword());
        //Subject:项目,通过Shiro保护的项目一个抽象概念
        //通过令牌(token)与项目(subject)的登陆(login)关系,Shiro保证了项目整体的安全
        //获取Subject单例对象
        Subject subject = SecurityUtils.getSubject();
        //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
        //登录
        subject.login(token);

        if (subject.hasRole("admin")) {
            map.put("role","admin");
            map.put("username",userlogin.getUsername());
        }
        return map;

    }

 

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值