最近测试一个接收程序的,遇到了最常见的跨域问题,本来跨域问题都是后端配置解决的,突发奇想使用前端jsonp解决一下(以前没怎么用,当学习了),这里记录一下
前端
ajax请求,用src或者$.get也可以
$.ajax({
type: 'get',
url: '',
dataType: 'jsonp',
jsonp: "jsonpCallback",
async: false,
data: {},
success: function (result) {
console.log(result)
}
})
后端
@RequestMapping("/")
@ResponseBody
public 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);