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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我