<pre name="code" class="javascript"> function handleErr(xhr,type,errorThrown){
if(type == 'timeout'){
alert('连接服务器超时,请检查网络是否畅通!');
}else if(type == 'parsererror'){
alert('解析返回结果失败!');
}else if(type == 'error'){
alert('连接服务器失败!');
}else{
alert('未知异常');
}
}
function getData(murl, mdata,successCallback, errCallback) {
$.ajax({
type : "GET",
timeout:150000,
url : getIP()+murl,
dataType : "jsonp",
jsonpCallback:"callback",
data : {
'requestUser':"{'ID':'"+getUser()+"','Password':'"+getPassword()+"'}",
'data' : mdata
},
success : function(e) {
successCallback(e);
},
error:function(XMLHttpRequest,textStatus,errorThrown) {
if(errCallback) errCallback(XMLHttpRequest,textStatus,errorThrown);
}
});
}
后台要接收前台提交过来的"callback",然后再返回到前台。如果直接返回json数据,前台会报缺少冒号。
<pre name="code" class="java">public class HandlerResponeJson {
public static String handle(String func,String data){
return func + "(" + data + ")";
}
}
<pre name="code" class="java"> @ResponseBody
@RequestMapping(value="/updatepassword",produces = "application/json;charset=UTF-8")
public String updatePassword(HttpServletRequest request,@RequestParam("callback") String callback,Map<String, Object> map) {
Message<Object> msg = new Message<Object>();
String mdata = request.getParameter("data");
JSONObject obj = JSON.parseObject(mdata);
Map<String,Object> data = new HashMap<String,Object>();
data.put("oldPwd", oldPwd);
msg.setMsg("update success");
msg.setObj(data);
return HandlerResponeJson.handle(callback,JSON.toJSONString(msg));
}