jsonp 只支持get请求不支持post请求
用法说明:
①dataType改为jsonp
②jsonp : "jsonpCallback"————发送到后端实际为http://a.a.com/a/FromServlet?userName=644064&jsonpCallback=jQueryxxx
③后端获取get请求中的jsonpCallback
④构造回调结构
前端
$.ajax({
type : "GET",
async : false,
url : "http://a.a.com/a/FromServlet?userName=644064",
dataType : "jsonp",//数据类型为jsonp
jsonp : "jsonpCallback",//服务端用于接收callback调用的function名的参数
success : function(data) {
if(data && JSON.stringify(data)!='{}'){
var pressureList = data.pressureList;
}
},
error : function() {
alert('fail');
}
});
后端
String jsonpCallback = request.getParameter("jsonpCallback");
//构造回调函数格式jsonpCallback(数据)
resp.getWriter().println(jsonpCallback+"("+jsonObject.toJSONString()+")");
完整后端方法实例:、
public void getList(HttpServletRequest request, HttpServletResponse response)
throws IOException
{
String jsonpCallback = request.getParameter("jsonpCallback");
Map map = new HashMap();
System.out.println("进入方法");
List pressureList = this.lsInterfaceService.getSiteData("1");
List flowList = this.lsInterfaceService.getSiteData("2");
List waterList = this.lsInterfaceService.getSiteData("3");
map.put("pressureList", pressureList);
map.put("flowList", flowList);
map.put("waterList", waterList);
JSONObject jsonObj = JSONObject.fromObject(map);
response.getWriter().println(jsonpCallback + "(" + jsonObj.toString() + ")");
}