前一段时间配合一个系统,写了一个服务,供他们调用,往我们这推送数据。到上线结束的一切测试,忽略了IE9。一直使用的是谷歌和IE11,是没有问题的,但是客户的IE9暴露了问题。坑了一小会,试了下jsonp的方式,IE9也没有问题了。
修改ajax请求:
$.ajax({
type : "GET",
cache : false,
jsonp: "callback",
crossDomain: true,
jsonpCallback:"jsonBackgys",
dataType:"jsonp",
...
})
⚠️注:jsonp只支持get请求。
controller:
@RequestMapping(value = "insertSuperviseInfo", method = RequestMethod.GET)
public void insertSuperviseInfo(HttpServletRequest httpServletRequest,String superviseJsonStr, String archiveTime){
if("jsonp".equals(httpServletRequest.getParameter("callback"))){
logger.info("督办单数据接受参数" + httpServletRequest.getParameter("callback") + "(" + superviseJsonStr + ")" + ";督办结束时间:" + httpServletRequest.getParameter("callback") + "(" + archiveTime + ")");
superviseService.insertSuperviseInfo(httpServletRequest.getParameter("callback") + "(" + superviseJsonStr + ")", httpServletRequest.getParameter("callback") + "(" + archiveTime + ")");
}else{
logger.info("督办单数据接受参数" + superviseJsonStr + ";督办结束时间:" + archiveTime);
superviseService.insertSuperviseInfo(superviseJsonStr, archiveTime);
}
}