$.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页面,难受
图片说明

9个回答

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

qq_34118819
请不要留恋 一脸懵逼,为什么?他能收到我的return返回的数据吗?这个返回数值是在struct.xml里面用来跳转页面的
3 年多之前 回复
 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);

qq_34118819
请不要留恋 这个,我就直接把那段在action里边发送数据的函数放在了execute()函数里,返回true是为了页面跳转。而且$("#category").html(html);应该是替换这个标签id里边的东西用的吧。
3 年多之前 回复

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

qq_34118819
请不要留恋 大佬,我对这个还是不是很熟悉,能不跟我说清楚点儿。action是拦截的全局,后边那句我就不太懂了,,,我知道什么是js
3 年多之前 回复

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

qq_34118819
请不要留恋 谢谢大佬,我自己体会一下
3 年多之前 回复

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

qq_34118819
请不要留恋 解决了,多谢大佬。我把这句单独放在一个函数就解决了
3 年多之前 回复
qq_34118819
请不要留恋 意思是说我这个函数就不能有return对吧,我把它直接跟我的控制跳转层放在一起了。因为我寻思着这个动作应该同时发生
3 年多之前 回复

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

把printwrite 给close()了 就行了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐