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就能夠改用對應的外網訪問地址來訪問了。