利用jQuery获取jsonp
前端js代码:
$.ajax({
   url: 'http://localhost:8080/webApp/somejsonp',
   dataType: "jsonp",
   jsonp: "callback",
   success: function (data) {
       console.log(data)
   }
})
服务端代码:
本例采用java实现 使用的springmvc伪代码
 private boolean ifJsonp(HttpServletRequest request,HttpServletResponse response,Map<String, Object> map) throws Exception{
  // jsonp
  String callback = request.getParameter("callback");
  if(StringUtils.isNotBlank(callback)){
   callback = callback.trim();
   request.setAttribute("data", map);
   request.setAttribute("callback", callback);
   request.getRequestDispatcher("/jsonpData").forward(request, response);
   return true;
  }
  return false;
 }
@RequestMapping("/jsonpData")
 public @ResponseBody String genJasonData(HttpServletRequest request,HttpServletResponse response){
  Object data = request.getAttribute("data");
  String callback = (String) request.getAttribute("callback");
  if(data==null||StringUtils.isBlank(callback)){
   return "{\"result\":\"-1\",\"message\":\"未知错误\"}";
  }
  try {
   response.setContentType("application/x-javascript;charset=UTF-8");
   response.setCharacterEncoding("UTF-8");
   response.getOutputStream().write((callback+"(").getBytes());
   JsonGenerator generator = this.objectMapper.getJsonFactory().createJsonGenerator(response.getOutputStream(), JsonEncoding.UTF8);
   this.objectMapper.writeValue(generator, data);
   response.getOutputStream().write((")").getBytes());
  } catch (Exception e) {
   return "{\"result\":\"-1\",\"message\":\"未知错误\"}";
  }
  return null;
 }
服务端使用:
@RequestMapping(value = "/somejsonp")
public Map<String, Object> findRcbChannelTabsInRecordID(HttpServletRequest request,HttpServletResponse response) throws Exception{
List list = new ArrayList();
Map<String, Object> map = new HashMap<String, Object>();try {
list = service.queryData(map);//要查询的数据
} catch (Throwable t) { } map.put("Data", list);// jsonp
if(ifJsonp(request, response, map)){
return null;
} return map;
}
来源更多请参考:http://www.cnblogs.com/lemontea/archive/2012/12/11/2812268.html
利用jQuery获取jsonp的更多相关文章
- label标签利用jquery获取值得方式为$("#message").html()
		label标签利用jquery获取值的方式为$("#message").text(), 赋值的方式为:$("message").html("北京欢迎你 ... 
- Jquery学习笔记:利用jquery获取select下拉框的值
		jquery不是特别熟练,每次使用不常用的就要百度,特地记录下来. 我的下拉框是: <div class="form-group"> <select class= ... 
- 利用jQuery获取鼠标当前的坐标
		文字来源:http://www.smalluv.com/jquery_code_106.html jQuery获取当前鼠标坐标位置: <div id="testDiv"> ... 
- 利用jQuery获取数据,JSONP
		最近工作用到了跨域请求,所以此文就有了,概念网上都有,就不细说了,直接来了. 看了一篇文章,说的是通过扩展让ASP.NET Web API支持JSONP,jsonp网上有很多的教程,js代码部分基本和 ... 
- 利用jquery获取html中被选中的input的值
		单个按钮 <div id="wrap"> <input type="radio" name="payMethod" val ... 
- 利用 jquery 获取某个元素下的所有图片并改变其属性
		HTML代码 <div id="mochu"> <p>内容....<./p> <p><img src="xxxx.p ... 
- 利用Jquery获取、设置iframe中元素
		<iframe id="iframe" src="'+url+'"></iframe>'; //iframe加载完成后 $(" ... 
- 如何利用JQuery获取iframe内联框架对象?
		parent.$("#iframeID").get(0).contentWindow; 父.$("选择器").get(0).contentWindow; get ... 
- 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式
		在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ... 
随机推荐
- Fence
			Fence 有一个长度为n的\([1,n]\)墙,有k位工人,第i位工人有参数\(s_i,p_i,l_i\),意思该位工人可以刷包含\(s_i\)的长度小于等于\(l_i\)的区间,报酬为区间长度乘以 ... 
- yield支持的协程
			#_author:来童星#date:2019/12/12def consumer(name): print("--->start...") while True: new_b ... 
- 树形dp——cf1010D
			一个点的改变如果对根节点的值不会造成任何影响,那么这个点的所有子节点的改变也不会对根节点造成影响 因为每次只改一个叶子节点,也就是一条到根的路径,可以先预处理出初始情况下的每个结点的值 分别讨论根节点 ... 
- hdu多校第一场1003 (hdu6580)Milk 背包
			题意: 有一个n*m的矩阵,左右可以随便走,但只能在每一行的中点往下走,每走一格花费时间1. 现在这个矩阵里放了k瓶牛奶,第i个牛奶喝下去需要ti时间 起点是(1,1) 对于每个i∈[1,k],问喝掉 ... 
- PHP面向对象魔术方法之__call函数
			l 基本介绍: (1) 当我们调了一个不可以访问的成员方法时,__call魔术方法就会被调用. (2) 不可以访问的成员方法的是指(1. 该成员方法不存在, 2. 成员方法是protected或者 p ... 
- Map、可变参数、静态导入、Collections、Arrays、集合嵌套
			Map双列集合 key 键 value 值 方法: put(K, V) //判断key值是否相等,相等,覆盖元素,不相等,存储 remove(K) Map集合的遍历(不要看到java提供了很多方法做一 ... 
- linux xargs命令一(与find ls等命令组合)(转)
			-p 操作具有可交互性,每次执行comand都交互式提示用户选择 -i -i 选项告诉 xargs 可以使用{}代替传递过来的参数, 建议使用-I,其符合POSIX标准 -I 格式: xargs - ... 
- java-day04
			IntelliJ快捷键 导入包 alt + enter 删除光标所在行 ctrl + y 复制光标所在行 ctrl + d 格式代码 ctrl + alt + l 单行注释 ctrl + / 多行注释 ... 
- POJ 3376 Finding Palindromes EX-KMP+字典树
			题意: 给你n个串串,每个串串可以选择和n个字符串拼接(可以自己和自己拼接),问有多少个拼接后的字符串是回文. 所有的串串长度不超过2e6: 题解: 这题由于是在POJ上,所以string也用不了,会 ... 
- 面试系列18 rediscluster 原理
			一.节点间的内部通信机制 1.基础通信原理 (1)redis cluster节点间采取gossip协议进行通信 跟集中式不同,不是将集群元数据(节点信息,故障,等等)集中存储在某个节点上,而是互相之间 ... 
