`

java json-lib & jQuery & jsonp

 
阅读更多
参考链接:
1、http://hanqunfeng.iteye.com/blog/1866712
2、http://blog.csdn.net/z69183787/article/details/15808921
3、http://www.cnblogs.com/JerryTian/p/4194900.html
4、http://feitianbenyue.iteye.com/blog/2046877
一 程序所需jar文件及POM
<dependency>
		    <groupId>net.sf.json-lib</groupId>
		    <artifactId>json-lib</artifactId>
		    <version>2.4</version>
		</dependency>
		
		<dependency>
		    <groupId>net.sf.ezmorph</groupId>
		    <artifactId>ezmorph</artifactId>
		    <version>1.0.6</version>
		</dependency>


二 后台代码编写
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();  
      }  

三 JS代码编写
$.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');  
        }  
    });   

四 相关错误
 java.lang.ClassCastException: JSON keys must be strings

解决如下:
 JsonConfig jsonConfig = new JsonConfig();  
  
    // 排除,避免循环引用 There is a cycle in the hierarchy!  
    jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
    jsonConfig.setIgnoreDefaultExcludes(true);  
    jsonConfig.setAllowNonStringKeys(true);  
  
    if (Validator.isNotNullOrEmpty(excludes)){  
        jsonConfig.setExcludes(excludes);  
    }  
    String string = JsonUtil.toJSON(obj, jsonConfig).toString(4, 4);  

五 相关说明
jsonp
类型:String
在一个 jsonp 请求中重写回调函数的名字。这个值用来替代在 "callback=?" 这种 GET 或 POST 请求中 URL 参数里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 会导致将 "onJsonPLoad=?" 传给服务器。
jsonpCallback
类型:String
为 jsonp 请求指定一个回调函数名。这个值将用来取代 jQuery 自动生成的随机函数名。这主要用来让 jQuery 生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存 GET 请求的时候,指定这个回调函数名。
分享到:
评论

相关推荐

    json-viewer, 它是用于打印JSON和JSONP的Chrome 扩展.zip

    json-viewer, 它是用于打印JSON和JSONP的Chrome 扩展 JSON查看器 你的眼睛所见过的最漂亮和可以定制的json/。 它是用于打印JSON和JSONP的Chrome 扩展。注释:这里扩展可能会与其他JSON萤火虫/格式化程序发生碰撞,你...

    jquery-jsonp:jquery jsonp 插件

    jQuery-JSONP jQuery-JSONP 是 jQuery 的 JSONP 实现的一个紧凑(1.8kB 缩小)但功能丰富的替代解决方案。 许可 jQuery-JSONP 是在下发布的。 下载 您可以下载 jQuery-JSONP(提供全文和缩小版本)。 特征 jQuery-...

    jquery-jsonp

    jquery-jsonp插件

    vue-jsonp:一个用于处理JSONP请求的小型库

    $jsonp ( '/some-jsonp-url' , { myCustomUrlParam : 'veryNice'} ) 直接使用功能: import { jsonp } from 'vue-jsonp'jsonp ( '/some-jsonp-url' , { myCustomUrlParam : 'veryNice'} )发送数据并设置查询和函数...

    json-formatter, 使 json/jsonp易于阅读.zip

    json-formatter, 使 json/jsonp易于阅读 JSON格式化程序当你在浏览器选项卡中访问 in'直接'时,很好的打印JSON和tmodel的Chrome 扩展。特性JSONP支持快速,即使在长页面上有效的JSON页面- URL不重要语法高亮显示带有...

    jquery-jsonp-master.zip

    终于找到了一个好用的jquery-jsonp插件,可以完美的支持jsonp请求。可以完美的支持jsonp请求。

    JSON to JSONP- Bypass Same-Origin Policy

    JSON to JSONP- Bypass Same-Origin Policy

    第25周-第06章节-Python3.5-JSONP跨域请求jQuery方式.avi

    第25周-第06章节-Python3.5-JSONP跨域请求jQuery方式.avi

    json-viewer:这是一个Chrome扩展程序,用于打印JSON和JSONP

    您所见过的最美丽,最可定制的JSON / JSONP荧光笔。 这是一个Chrome扩展程序,用于打印JSON和JSONP。 笔记: 此扩展名可能与其他JSON荧光笔/格式化程序一起崩溃,您可能需要禁用它们 要突出显示本地文件和隐身...

    jquery-jsonp.js

    7、为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据...

    jquery-jsonp-master.zip_jsonp

    一个jquery文件,适合学习参考应用jquery轻量级

    前端开源库-json-proxy

    前端开源库-json-proxyJSON代理、grunt plugin/cli实用程序/express中间件,用于将API请求代理到没有CORS或JSONP的远程服务器。

    利用JQuery jsonp实现Ajax跨域请求json数据

    利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据

    前端项目-fetch-jsonp.zip

    前端项目-fetch-jsonp,Fetch JSONP like a boss using Fetch API

    axios-jsonp:适用于axios的jsonp适配器

    适用于axios的jsonp适配器支持承诺,支持取消,与xhr相同安装npm install axios-jsonp用法let axios = require('axios');let jsonpAdapter = require('axios-jsonp');axios({ url: '/jsonp', adapter: jsonpAdapter,...

    DJSON-Viewer:使JSONJSONP易于阅读

    Chrome扩展程序,可以直接在浏览器标签中很好地打印和格式化JSON和JSONP。 格式化程序的初始基础,来自: 。 使用来自以下开发人员工具: 产品特点 格式化JSON和JSONP输入或响应 缩小或美化JSON 主题支持 语法高亮...

    Ajax-cors-jsonp-sample.zip

    Ajax-cors-jsonp-sample.zip,客户端和服务器端(Java)用于跨源资源共享(CORS)的示例。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中...

    JSON和JSONP(含jQuery实例)

    NULL 博文链接:https://bijian1013.iteye.com/blog/2179338

    跨域访问解决方法-jsonp

    使用jsonp跨域获取json数据。Ajax获取JAVA服务器json数据。

    sso-jsonp-demo

    jsonp实现sso跨域登录。这个代码实际上是自己写的一个demo。部署后,先在a项目login.jsp登录,然后再进入a和b项目的index.jsp就能看到已经登录。

Global site tag (gtag.js) - Google Analytics