几乎没有写过前端,最近在学习一个项目,需要用到jsonp进行跨域问题,写了一个ssm框架支持jsonp的demo。
通常情况下,前端通过一个带有回调函数的ajax请求调用后端,如下:
$.ajax({
type: "get",
async:false,
url: "http://127.0.0.1:8080/rest/category",
dataType: "jsonp",
jsonpCallback:"jsonpCallback",
success: function(data){
alert(data);
}
});
后台代码:
@Controller
public class CategoryController {
@Autowired
private CategoryService categoryService;
@RequestMapping("/rest/category")
@ResponseBody
public Object getItemCatList(String callback) {
CatResult catResult = categoryService.getCategoryList();
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(catResult);
mappingJacksonValue.setJsonpFunction(callback);
return mappingJacksonValue;
}
}
MappingJacksonValue 自动就会将数据转换成对应的jsonp格式的数据!