jquery getJSON()方法 和 Servlet filter 作为登录过滤器一起使用不起作用

duchang110 2016-11-17 04:56:19
前台用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,这是怎么回事???
...全文
136 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2016-11-17
  • 打赏
  • 举报
回复
status 还是success 说明请求地址和返回的数据格式都是正确的,所以没有出现错误。 至于success 返回的的结果 是你程序需要控制的。 js应该这样判断 $.getJSON(url,data,function(data){ alert("此时是success的") if(data.result=='fail'){ alert('not login') }else{ alert('login') } })

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧