搜索
您的当前位置:首页正文

jsonp解决http请求跨域问题

来源:二三娱乐

前一段时间配合一个系统,写了一个服务,供他们调用,往我们这推送数据。到上线结束的一切测试,忽略了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);
    }
}
Top