jquery getJSON()方法 和 Servlet filter 作为登录过滤器一起使用不起作用
前台用jquery getJSON方法请求后台,代码如下:
function submitInfo() {
$("#submit").click(function() {
$("#dataTable tbody tr").remove()
$.getJSON(
"server/getEmployeeInfo", {
eid: $("#eid").val(),
},
function(data, status) {
if(status == "success") {
if(typeof data.result == "undefined") {
$.each(data, function(dataIndex, dataInfo) {
var tr = document.createElement("tr")
tr.id = dataInfo.eid
var td1 = document.createElement("td")
td1.innerHTML = dataInfo.eid
tr.appendChild(td1)
var td_1 = document.createElement("td")
td_1.innerHTML = dataInfo.ename
tr.appendChild(td_1)
$("#dataTable tbody").append(tr)
});
} else {
alert(data.result)
}
}
}
);
});
}
登录过滤器如下:
// place your code here
HttpServletRequest rq = (HttpServletRequest) request;
HttpServletResponse rp=(HttpServletResponse) response;
HttpSession session = rq.getSession();
boolean islogin = false;
if (session.getAttribute("isLogin") != null) {
islogin = (boolean) session.getAttribute("isLogin");
}
if (!islogin) {
System.out.println("未登录");
System.out.println(request.getServletContext().getContextPath());
PrintWriter out =rp.getWriter();
StringBuilder json=new StringBuilder("[");
json.append("{\"result\":\"fail"+"\"},");
String result=json.toString().substring(0, json.toString().length()-1);
result=result+"]";
out.print(result);
out.flush();
out.close();
} else {
// pass the request along the filter chain
chain.doFilter(request, response);
}
当执行getjson方法时,后台会提示未登录并拦截请求,但是getJSON方法获得的 status 还是success,这是怎么回事???