Rest api 跨域访问 前后端实现
客户端:
<pre name="code" class="java"><script> function getIP(){ $.ajax({ url:"http://localhost:8911/api/getinfo",type:"get",jsonp:'jsonpcallback',dataType:"jsonp",//跨域必须用jsonp cache:false,success: function(obj){ alert(obj.ip+obj.mac); } }); } </script>
服务器端:jersey对jsonp的支持
@GET @Path("getinfo") @Produces("application/json") public String getInfo(@QueryParam("jsonpcallback") String jsonpcallback){ String mac="",ip=""; try { mac = Util.getMac(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } ip = Util.getIp(); return jsonpcallback+"({\"ip\":\""+ip+"\",\"mac\":\""+mac+"\"})"; }
2.当请求数据类型为jsonp时,会将callback=jsonpCallback加在url上,http://localhost:8911/api/getinfo?callback=jsonpCallback参考