背景,由于登录服务器和应用服务器不在一个域,所以必须跨域进行登录验证,而AJAX本身是不能跨域的,但jquery提供了默认的解决方案。
第一步,服务端:
String callback=request.getParameter("callback"); JSONObject jb = JSONObject.fromObject(result);// 更改为你自己的拼装JSON代码 PrintWriter out = response.getWriter(); out.print(callback+"("+jb.toString()+")",false); out.close(); return null;
第二部,客户端:
_Jquery.ajax({ url : url, data : data, dataType : "jsonp", jsonnp : 'callback', timeout:15, success : function(map){ if(map["success"]=="true"){ _dialogAlert("登录成功!",'登录成功'); location.reload(); }else{ _dialogAlert(map["errorMsg"],'登录失败'); } }, error:function (XMLHttpRequest, textStatus, errorThrown) { // 通常 textStatus 和 errorThrown 之中 // 只有一个会包含信息 _dialogAlert("请求超时,请稍后重试。"); // 调用本次AJAX请求时传递的options参数 } });