如今的巨石应用已经越来越不行了,很多互联网在后期都会在用分布式的架构
那么在页面上不同的服务调用不同域名下的json是有问题的
(跨域:不同域名,相同域名但是不同端口)
JavaScript规范中提到的json是不能直接跨域调用,为了安全,但是能调用js片段
所以把json包装为一个js片段,也就是jsonp那么就能够跨域请求
在spring4.1后,提供了新的方法可以作为jsonp的调用
例:
1 @RequestMapping(value="/list")
2 @ResponseBody
3 public Object getItemCatList(String callback) {
4 ItemCatResult result = itemCatService.getItemCatList();
5 if (StringUtils.isBlank(callback)) {
6 //需要把result转换成字符串
7 return result;
8 }
9 //如果字符串不为空,需要支持jsonp调用 spring4.1 以上可用
10 MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(result);
11 mappingJacksonValue.setJsonpFunction(callback);
12 return mappingJacksonValue;
13 }
如图,这就是jsonp
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcukTN2IjNxETOtYzMykTN2AzMxUjM0AjNxAjMtYTO0EDN48CX0AjNxAjMvwlN5QTM0gzLcd2bsJ2Lc12bj5ycn9Gbi52YuUTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
那么只要在js需要调用jsonp的地方稍加处理就能够跨域调用数据了~
官网itzixi.com
微信公众号:BeJavaGod
新浪微博
知乎
简书
cnblogs
今日头条
豆瓣
--> 同步更新