SpringMVC返回jsonp的问题
来源:互联网 发布:淘宝 618 大促 销售额 编辑:程序博客网 时间:2024/06/06 03:55
项目采用springMVC作为控制层,有一个请求用来返回jsonp的数据。代码大致内容如下:
@RequestMapping(value = LoginUrlUtil.LOGINJSON)@ResponseBodypublic Object loginjsonp (String my_username, String my_password, String callbackJsonp, HttpServletResponse response, HttpServletRequest request) { JSONObject jsonObject = new JSONObject(); makeResult(jsonObject); return callbackJsonp + "(" + jsonObject.toJSONString() + ")";}可是在页面进行ajax的jsonp调用时,却不进入success方法,打印错误信息,发现有异常:XXX was not called。也就是说返回的数据的格式是有问题的。
但是换为PrintWriter向页面输出却没有问题,代码如下:
@RequestMapping(value = LoginUrlUtil.LOGINJSON)@ResponseBodypublic Object loginjsonp (String my_username, String my_password, String callbackJsonp, HttpServletResponse response, HttpServletRequest request) { JSONObject jsonObject = new JSONObject(); makeResult(jsonObject); response.getWriter().write(callbackJsonp + "(" + jsonObject.toJSONString() + ")"); return null;}在浏览器中直接访问该请求,发现采用return的返回结果,页面输出的是以下形式的:
"callbackJsonp({\"jumpTo\":\"http://www.XXXX.com/\",\"result\":\"success\",\"userId\":1,\"memberId\":2})"
而采用PrintWriter页面输出形式如下:
callbackJsonp({"jumpTo":"http://www.XXXX.com/","result":"success","userId":1,"memberId":2})
而这两种情况的不同出现的原因和为什么第一种页面出现异常的原因我不得而知。但是既然用了springMVC,还是喜欢采用ResponseBody注解,返回对象这种看起来优雅的形式。于是继续寻找解决方法,后来发现,采用com.fasterxml.jackson.databind.util.JSONPObject可以实现,代码如下:
@RequestMapping(value = LoginUrlUtil.LOGINJSON)@ResponseBodypublic Object loginjsonp (String my_username, String my_password, String callbackJsonp, HttpServletResponse response, HttpServletRequest request) { JSONObject jsonObject = new JSONObject(); makeResult(jsonObject); JSONPObject jpo = new JSONPObject(callbackJsonp, jsonObject); return jpo;}
阅读全文
0 0
- SpringMVC返回jsonp的问题
- SpringMVC返回jsonp解决跨域问题
- SpringMVC 返回json 4.6 的问题
- springMVC返回数据的乱码问题
- 关于SpringMVC返回date的格式问题
- springmvc返回json的日期格式问题
- springmvc返回路径错误的问题
- springmvc的get请求返回乱码问题
- springmvc解决返回json的数据格式问题
- springmvc+jsonp解决跨域问题
- springmvc返回值问题
- SpringMVC使用fastjson自定义Converter支持返回jsonp格式
- springMVC + jsonP
- springMVC + jsonP
- springMVC + jsonP
- 关于JSONP的问题
- springMVC解决跨域jsonp乱码问题的三种方法
- springMVC实现jsonp的跨域请求
- PHP课设-问题笔记
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- 人工智能+Python
- 计科-面试问题(1)
- python 3.x(1)
- SpringMVC返回jsonp的问题
- ubuntu安装机器学习环境
- 强制类型转换运算符的优先级
- Python爬虫0.1
- Python爬虫0.2
- python爬虫0.3
- 断言
- python0.4
- 初学nlp&nn