$.ajax 中的 success : function(data) 函数中接收数据问题

这是我的ajax

 $(function() {
        var power;
        var html = "";
        $.ajax({
                    url : "../loginAction",
                    type : "post",
                    dataType : "text",
                    success : function(data) {
                                            alert("我是王晓思"+data);
                                            if (data != 1) {
                                                html += "<li><a href='../admin/userManage.jsp' target='frmright'><span>用户管理</span></a></li>"
                                                        +"<li><a href='../admin/powerManage.jsp' target='frmright'><span>权限管理</span></a></li>"
                                                        +"<li><a href='../admin/roleManage.jsp' target='frmright'><span>角色管理</span></a></li>"
                                                        +"<li><a href='../admin/modifyPassword.jsp' target='frmright'><span>修改密码</span></a></li>"
                                                        +"<li><a href='../admin/search.jsp' target='frmright'><span>统计查询</span></a></li>";
                                            }
                                            else if(data == 2){
                                            alert('函数执行2');

                                            }
                                            else if(data == 3){

                                            }
                                            else if(data == 4){

                                            }
                                $("#category").html(html);
                                }
                                        });
                    });

这是我的action
HttpServletResponse response = (HttpServletResponse)
ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
PrintWriter out = response.getWriter();
/*Map map = new HashMap();
map.put("power", "1");

JSONObject data =JSONObject.fromObject(map);*/
String data = "1";
out.println(data);
return "true";
然后我接受的数据不是 1 ,而是ajax所在的html页面,难受
图片说明

如果你return data返回的就是1了,return “true” 应该是true.jsp

 HttpServletResponse response = (HttpServletResponse)
ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
PrintWriter out = response.getWriter();
/*Map map = new HashMap();
map.put("power", "1");

JSONObject data =JSONObject.fromObject(map);*/
String data = "1";
out.println(data);
return "true";

补充了一下action的代码格式,之前第一次上传代码,出了点儿问题

你不是return true了吗,那个data 返回就是true啊,你这个显示的应该是$("#category").html(html);

action 设置拦截的全局。然后在xmlhttprequest 对象中插入js

设置一下返回类型,既然是ajax请求,就不要有返回值了,直接out.print(value)就可以了,再就是看看返回的头设置为json,或者你要的类型,
或者可以直接在类上用注解@ResposeBody

用ajax 后台action 就out.println(data);就可以了,并不用return 了,return 是返回一个页面

谢谢大佬们,问题解决了。我把这段代码单独拿出来放进一个函数就解决了

把printwrite 给close()了 就行了