最近测试一个接收程序的,遇到了最常见的跨域问题,本来跨域问题都是后端配置解决的,突发奇想使用前端jsonp解决一下(以前没怎么用,当学习了),这里记录一下
前端
ajax请求,用src或者$.get也可以
$.ajax({
type: 'get',url: '',dataType: 'jsonp',jsonp: "jsonpCallback",async: false,data: {
},success: function (result) {
console.log(result)}
})
后端
@RequestMapping("/")@ResponseBodypublic String aaa(HttpServletRequest request) {
List list= this.service.aaa();String callback = request.getParameter("jsonpCallback");String s = JSON.toJSONString(list);String data = callback + "(" + s + ")";return data;}
遇到的问题
返回集合时,字段为String,不能自动加上"",导致前端不能识别为字符串
使用阿里json解决
String s = JSON.toJSONString(list);