JSONP(json with Padding)是资料格式 JSON 的一种“使用模式”,可以让网页从别的网域获取资料。
一. 客户端
<!DOCtype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta HTTP-eqUIv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script type="text/javascript" src="resource/JS/JQuery-1.7.2.js"></script> </head> <script type="text/JavaScript"> $(function(){ /* //简写形式,效果相同 $.getJSON("http://APP.example.com/base/json.do?sid=1494&busiId=101&jsonpcallback=?", function(data){ $("#showcontent").text("Result:"+data.result) }); */ $.Ajax({ type : "get", async:false, url : "http://app.example.com/base/json.do?sid=1494&busiId=101", dataType : "jsonp",//数据类型为jsonp jsonp: "jsonPCallback",//服务端用于接收callback调用的function名的参数 success : function(data){ $("#showcontent").text("Result:"+data.result) }, error:function(){ alert('fAIl'); } }); }); </script> <body> <div id="showcontent">Result:</div> </body> </html>
二. 服务器端
import java.io.IOException; import Java.io.PRintWriter; import java.util.Hashmap; import java.util.Map; import javax.servlet.http.httpservletRequest; import javax.servlet.http.HTTPServletResponse; import net.sf.json.JSONObject; import org.springframework.steREOtype.controller; import org.springframework.WEB.bind.annotation.RequestMapPing; @Controller public class ExchangeJsonController { @RequestMApping("/base/json.do") public void exchangeJson(HttpServletRequest request,HttpServletResponse response) { try { response.setContentType("text/plain"); response.setHeader("Pragma", "No-CAChe"); response.setHeader("Cache-Control", "no-cache"); response.setdateHeader("Expires", 0); Map<string,String> map = new HashMap<String,String>(); map.put("result", "content"); PrintWriter out = response.getWriter(); JSONObject resultJSON = JSONObject.fromObject(map); //根据需要拼装json String jsonpcallback = request.getParameter("jsonpCallback");//客户端请求参数 out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据 out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }








网友评论文明上网理性发言 已有0人参与
发表评论: