JQUERY 端 -- 記得加上 ?callback=?
$.getJSON("http://140.96.29.65:8080/SnakeEyes/SnakeEyesServlet?callback=?",{
sname: "[{session_id:1, pid:1, fid:15201, lat1:24.634535, lng1:120.918274, lat2:24.877716, lng2:120.923767, lat3:24.878962, lng3:121.216278, lat4:24.624548, lng4:121.213531}]"
},
function(data){
alert(data[0].location);
});
ServerLet 端! 很重要 要從 request中取 callback 以及 在 JSON String兩側加上小跨號 (), 會變成一個字串長成 "abc(json)" 然後 Client 收到後就會自動去 call 這個 abc() Function!
HttpServletResponse response;
HttpServletRequest request;
response.setContentType("application/x-javascript; charset=utf-8");
PrintWriter out = response.getWriter();
out.print(request.getParameter("callback") + "({\"value\":\"");
out.print("\"})");
out.flush();
out.close();
弄了兩天, 總算完工了. p.s. JQUERY 可以下 "callback=?" or "callback=abc". 前者會直接呼叫 success Function, 後者會去呼叫自訂的 abc()!
沒有留言:
張貼留言