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(); } } }
以上就是小编为大家带来的浅谈JQuery+ajax+jsonp 跨域访问全部内容了,希望大家多多支持phpstudy~
本文地址:https://www.stayed.cn/item/18630
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我