如今的巨石應用已經越來越不行了,很多網際網路在後期都會在用分布式的架構
那麼在頁面上不同的服務調用不同域名下的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
那麼隻要在js需要調用jsonp的地方稍加處理就能夠跨域調用資料了~
官網itzixi.com
微信公衆号:BeJavaGod
新浪微網誌
知乎
簡書
cnblogs
今日頭條
豆瓣
--> 同步更新