jsonp的使用

来源:互联网 发布:有赞微商城和淘宝区别 编辑:程序博客网 时间:2024/06/05 15:19

1.Javascript的写法:jsonp只有get方法,post方法使用的方式跟get一样

$.ajax({
    type : 'post',
    async : false,
    url : baseUrl+'?callback=jsonpCallback',
    cache : false,
    data:params,
    dataType : "jsonp",
    jsonp: 'jsonpCallback',
    success : function(data) {
   
   
    }
    });

简写:

  1.  $.getJSON("http://app.example.com/base/json.do?jsonpCallback=?",  
  2.             function(data){  
  3.                 
  4.     });  

java后台需要返回一个和回调函数名相同的方法,需要在response设置返回编码,不然会出现中文乱码



@ResponseBody
@RequestMapping("enterprise/sendMailByWeek.html")
public void sendMailByWeek(HttpServletRequest request,HttpServletResponse response ,String previousMonth,String startStr ,String endStr ,String id){
try {

response.setContentType("text/plain");  
response.setHeader("Pragma", "No-cache");  
response.setHeader("Cache-Control", "no-cache");  
 response.setDateHeader("Expires", 0);  
response.setCharacterEncoding("utf-8");
Map<String,Object> param = new HashMap<>();
param.put("id", id);
List<EnterpriseVo> entList = sendMessageService.queryAllEnterprise(param);
List<EnterpriseSwap> entSwapList = sendMessageService.queryEnterpriseSwapByWeek(startStr);
String Time = "week";
String msgTime = "(" + startStr + "至" + endStr + ")业户周考核统计";
boolean flag = false;
List<Map<String,Object>> result = sendMessageService.sendMail(entList,entSwapList,msgTime,Time,flag);
PrintWriter out = response.getWriter();       
Object resultJSON = JSONObject.toJSON(result.get(0)); //根据需要拼装json  
String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数  
out.println(jsonpCallback+"("+resultJSON+")");//返回jsonp格式数据  
out.flush();  
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  


}

原创粉丝点击