java后台使用的ssm框架,小程序链接的本地接口。跟正常的web访问没什么区别,也是后台获取url,返回json数据;只是小程序前台请求的url要带上http://localhost:8080
1. 项目结构html
2. 配置文件:java
Jackson相关包下载 除去里面的js文件
3. test.js和test.wxml
(1) test.jsweb
bindtest:function(){ wx.request({ url:'http://ip:8080/WxProgram/buttonTest2', data:{ username:'admin', password:'admin' }, method:'GET', header:{ 'content-type':'application/json' }, success:function(res){ console.log(res.data); }, fail:function(res){ console.log("--------fail--------"); } }) }
(2) test.wxmlajax
<view>{{name}}</view> <view> <button bindtap='bindtest'>test</button> </view>
4. WxTestController.javajson
@RequestMapping(value="/buttonTest2") public void buttonTest(String username, String password, HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html;charset=utf-8"); /* 设置响应头容许ajax跨域访问 */ response.setHeader("Access-Control-Allow-Origin", "*"); /* 星号表示全部的异域请求均可以接受, */ response.setHeader("Access-Control-Allow-Methods", "GET,POST"); System.out.println("username="+username+" ,password="+password); //返回值给微信小程序 Writer out = response.getWriter(); out.write("进入后台"); out.flush(); }
运行结果:小程序
小程序前台:微信小程序
java后台:跨域
开始一直没有连成功,后来百度发现要先设置一下。参考这里
在请求本地接口时,要开启"不校验请求域名、TLS版本及HTTPS证书"选项:设置->项目设置->不校验请求域名、TLS版本及HTTPS证书。由于wx.request的url请求中不能有端口。微信
远程访问app
因为先后台是两我的开发的,须要远程访问。而由于注册的阿里云域名审查时间长,暂时用的花生壳远程链接。方法:下载花生壳客户端,使用免费赠送的域名,这里花了六块钱,忘了哪花的了。
登陆花生壳,设置内网穿透->添加映射。内网主机即本机ip地址,cmd,用ipconfig命令查看ipv4地址。如图。
这里遇到一个问题,添加的映射一直没显示,后来经过客服后台操做才显示成功。如图。
添加成功以后,启动Tomcat,以前的内网访问地址http://ip:8080就能够改用对应的外网访问地址来访问了。