前端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的更多相关文章

  1. label标签利用jquery获取值得方式为$("#message").html()

    label标签利用jquery获取值的方式为$("#message").text(), 赋值的方式为:$("message").html("北京欢迎你 ...

  2. Jquery学习笔记:利用jquery获取select下拉框的值

    jquery不是特别熟练,每次使用不常用的就要百度,特地记录下来. 我的下拉框是: <div class="form-group"> <select class= ...

  3. 利用jQuery获取鼠标当前的坐标

    文字来源:http://www.smalluv.com/jquery_code_106.html jQuery获取当前鼠标坐标位置: <div id="testDiv"> ...

  4. 利用jQuery获取数据,JSONP

    最近工作用到了跨域请求,所以此文就有了,概念网上都有,就不细说了,直接来了. 看了一篇文章,说的是通过扩展让ASP.NET Web API支持JSONP,jsonp网上有很多的教程,js代码部分基本和 ...

  5. 利用jquery获取html中被选中的input的值

    单个按钮 <div id="wrap"> <input type="radio" name="payMethod" val ...

  6. 利用 jquery 获取某个元素下的所有图片并改变其属性

    HTML代码 <div id="mochu"> <p>内容....<./p> <p><img src="xxxx.p ...

  7. 利用Jquery获取、设置iframe中元素

    <iframe id="iframe" src="'+url+'"></iframe>'; //iframe加载完成后 $(" ...

  8. 如何利用JQuery获取iframe内联框架对象?

    parent.$("#iframeID").get(0).contentWindow; 父.$("选择器").get(0).contentWindow; get ...

  9. 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...

随机推荐

  1. C++ 系列:函数可变长参数

    一.基础部分 1.1 什么是可变长参数 可变长参数:顾名思义,就是函数的参数长度(数量)是可变的.比如 C 语言的 printf 系列的(格式化输入输出等)函数,都是参数可变的.下面是 printf ...

  2. Laravel Illuminate\Http\Exceptions\PostTooLargeException

    出错原因是: 请求的post的数据比 php.ini设定的 post_max_size大的原因 解决方法: 增加php.ini中 post_max_size和upload_max_filesize的设 ...

  3. iOS ARC下命名规则

    当我在ARC模式下写以下代码的时候,编译器报错 Semantic Issue: Property's synthesized getter follows Cocoa naming conventio ...

  4. exit与return的区别

    ===========================PHP的解释=========================================================== return ...

  5. https 生成秘钥

    #生成一个RSA秘钥 openssl genrsa -des3 -out a_com.key 1024 #生成一个证书请求openssl req -new -key a_com.key -out a_ ...

  6. MAMP mysql无法启动 总结(以后有发现再添加)

    1.错误信息Can't start server : Bind on unix socket: Address already in use 解析:主要原因是上次关闭Mysql是出现异常而导致的, 解 ...

  7. AI入门---从破解AI开始

    我这里说的AI,并不是人工智能(Artificial Intelligence),只是Adobe illustrator.旁边有做设计的朋友,在他的指引下,对这个工具还颇感兴趣.就先下载个工具,闲暇时 ...

  8. 04_Mybatis输入\出映射

    1. 输入映射 ​ 通过paramterType指定输入参数的类型,类型可以是简单类型.hashmap.pojo的包装类. 1.1 传递pojo的包装对象 1.需求 ​ 完成用户信息的综合查询,需要传 ...

  9. 半宿了,仿写了个CList模板类,留着以后用吧

    难题还是很多阿.模板类.本身就是个问题 要考虑到各个方面,哎.问题很多 比如,如果模板类型为数值型.指针型数据,倒也可以 但是如果模板类型为聚合型,就麻烦了,判断.比较,什么乱七八糟的,都麻烦了. 哎 ...

  10. Spark如何读写hive

    原文引自:http://blog.csdn.net/zongzhiyuan/article/details/78076842 hive数据表建立可以在hive上建立,或者使用hiveContext.s ...