首页 > 学院 > 开发设计 > 正文

springmvc 数据传输跨域问题 access control allow origin——JSONP数据格式解决

2019-11-06 07:37:33
字体:
来源:转载
供稿:网友

sPRingmvc 数据传输跨域问题之JSONP数据格式

json和jsonp的区别自行搜索啦~~ 需要用到的包:这个是@ResponseBody返回数据的转换包 这里写图片描述 springmvc 在前端后端交互数据的时候,使用了跨域访问,一开始我只是用json数据传输,发现以下问题: 这里写图片描述

就是不允许跨域请求,所以后端数据传输需要转换为jsonp的格式。

我是这样解决的:控制器方法 在springmvc.xml中配置: 这里写图片描述

import org.springframework.http.converter.json.MappingJacksonValue;@Controller@RequestMapping("/news")public class YController { @RequestMapping(value = "/newsIndex",method = { RequestMethod.POST,RequestMethod.GET }) public @ResponseBody Object newsIndex(HttpServletRequest request, String callback) throws Exception { Map<String, String[]> parameterMap = request.getParameterMap(); //打印前端调用函数 YunshanSqlEvent yunshanSqlEvent = new YunshanSqlEvent(); List<String> list = new ArrayList<String>(); yunshanEventList.add("1"); yunshanEventList.add("2"); System.out.println(list); System.out.println(JSON.toJSON(list)); //转换jsonp格式 MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(list); mappingJacksonValue.setJsonpFunction(callback); return mappingJacksonValue; }}

参数:String callback 这个是前端的回调函数,需要注意他的函数名,我这边的前端就是用Jquery写的并且名字是callback。

在用这个方法进行数据的转换,最后为jsonp数据

MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(list);mappingJacksonValue.setJsonpFunction(callback);

最后返回这个对象,提供接口给前端就可以访问啦。例如这个方法的接口为:192.*.*.*:8080/ProjectName/news/newsIndex.action 谢谢。

参考: http://www.cnblogs.com/leechenxiang/p/5783467.html http://www.jianshu.com/p/2eb45e090c83


上一篇:matlab基础操作

下一篇:HDU 5925 离散化+dfs

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表