客户端jquery代码:
//ajax跨域请求
$.ajax({
type: 'get',//jsonp跨域只支持get请求(亲测是这样的,不知道是否准确)
url:"192.168.0.123",
async: false,
dataType: "jsonp",//数据格式jsonp,跨域请求
jsonp: "callback",//此处可以随便定义名称,也可省略。若省略,默认为callback,后台通过request.requestParameter(“callback”)获取回调函数名即下面定义的 //myCallback。若不省略,例如jsonp:"mycall",后台通过request.requestParameter(“mycall”)获取回调函数名。
jsonpCallback:"myCallback",
success: function(o){},
error:function(data){
console.log(data);
}
});
//回调函数
function myCallback(data) {
console.log(data);
}
java后台代码:
@RequestMapping(value="test",method=RequestMethod.GET)
@ResponseBody
public String test(HttpServletRequest request) {
String callback = request.requestParameter(“mycall”);
String json = "{\"id\":\"1\",\"name\":\"tom\"}";
String result = callback + "("+json+")";
return result;
}
总结:
1.jsonp只支持get请求
2.后台需要根据前台的callback定制接口开发,灵活性低。