关于jsonp的一些原理,大家可以百度
下面贴出一个我找到的jsonp详解传送门
关于jsonp的用法:
$.ajax({
type : "get",
url : url,
data : {detailMddm:detailMddm},
dataType : "jsonp",
jsonp:'mycallback',
jsonpCallback:'callbackFun',
success:function(data) {
//得到数据后,要插入到第三个明细表
console.log(data);
}
});
以上是前台发送ajax的案例,下面开始解释意义:
1.类型只能为get,这是jsonp的弊端
2.url,目标地址,主要是处理跨域地址
3.data,传输数据
4.dataType,数据类型,我们用jsonp
5.jsonp,就是callback的名称
6.jsonpCallback,是callback的属性值,后台需要获取包装
以下为后台页面:
@ResponseBody
@RequestMapping("getMdxq")
public String getMdxq(String detailMddm,HttpServletRequest request,HttpServletResponse response){
//获得callback
String callbackfun = request.getParameter("mycallback");
System.out.println(callbackfun );
//根据门店编号去查询相关字段
List<Mdxq> mdList = mainDataService.getMdxq(detailMddm);
//获取品牌名称,根据申请品牌的编号
for (Mdxq mdxq : mdList) {
String sqppNum = mdxq.getSqpp(); //是申请品牌的编号
String sqpp = mainDataService.getSqpp(sqppNum);
mdxq.setSqpp(sqpp);
}
//全部包装好后,转为json,然后拼接callback
Object obj = JSON.toJSON(mdList);
callbackfun += "(" + obj + ")";
return callbackfun ;
}
我是用的springboot,案例如上,前台可以打印出list值