<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1、今天做一个功能。使用了跨域请求,正常使用ajax请求,跨域的话,就会被浏览器给拦截掉。</span>
2、所以顺其自然想到了jquery的跨域请求。
代码:
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type : "get",
async:false,
url : "${base}/test/jsonp?sid=1494&busiId=101",
dataType : "jsonp",//数据类型为jsonp
jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数
success : function(data){
$("#showcontent").text("Result:"+data.result)
},
error:function(){
alert('fail');
}
});
}
);
</script>
@RequestMapping("/jsonp")
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();
}
}
//-----------测试jsonp结束----------------------