ajax的success方法参数值的问题

后台的一段代码如下:

 int m = 0;
                int base_rn = new RadioDao().getRadioNumber(base);
                int base_cn = new CheckBoxDao().getCheckBoxNumber(base);
                int base_jn = new JudgeDao().getJudgeNumber(base);
                int base_bn = new BlankDao().getBlankNumber(base);
                System.out.println(base_rn); //3
                if(base_rn < radio_number){
                    m = 1; //题库中单选题数量不足
                }
                if(base_cn < checkbox_number){
                    m = 2; //题库中多选题数量不足
                }
                if(base_jn < judge_number){
                    m = 3; //题库中判断题数量不足
                }
                if(base_bn < blank_number){
                    m = 4; //题库中填空题数量不足
                }
                System.out.println(m);
                PrintWriter out = response.getWriter();
                out.write(m);

所以m应该就是ajax中success方法的参数。然后执行如下前端代码:

 $.ajax({
        url : "servlet/GetPaperServlet",
        type : "POST",
        data : {
            "account" : account.val(),
            "true_name" : true_name.val(),
            "title" : title.val(),
            "base" : base.val(),
            "difficult" : difficult.val(),
            "time" : time.val(),
            "radio_number" : radio_number.val(),
            "checkbox_number" : checkbox_number.val(),
            "judge_number" : judge_number.val(),
            "blank_number" : blank_number.val(),
            "radio_score" : radio_score.val(),
            "checkbox_score" : checkbox_score.val(),
            "judge_score" : judge_score.val(),
            "blank_score" : blank_score.val(),
            "sum_score" : sum_score.val()
        },
            dataType : "text",
            success : function(msg) {
                if(msg == 1){
                    alert("题库中单选题数量不足,请减少题量!");
                    return false;
                }else{
                    alert("dd");
                }
            },
            error : function(er) {
                alert(er.message);
            }
        });

结果一直弹出“dd”,即msg不等于1.请问各路大神该如何解决?我这里一个参数需要做4次不同的判断,求解答,谢谢大家!

你获取服务端的 msg是一大text 你的dadaType:text

后台传的参数名称要和success里面接收的参数名称一样,你的后台传的参数名称是m,前台接收的是msg,所以前台一直接收不到后台传的值,可以用alert(msg),应该是null

说明你的msg不是1罗,或者包含了空白符什么的


            success : function(msg) {

                        alert(msg)//1
                        alert(msg.length)//如果是内容“1”应该是1

用浏览器断点跟踪下 就知道返回什么了

msg 就算是1 返回时也只能是 字符串1 你不转成数值型也不可能 和树值1相等

1.要确认你的ajax调用是否正确反回,可以F12 debug看一下,后台反回的数据有可能是字符串,"1"与1有区别
2.response设置一下contentType,默认好像是html的,不过记得如果仅仅是反回数字应该没有区别的
3.ajax的dataType最好也明确指定一下

datatype json会返回什么

试一下 msg[0]

你要的值应该是msg.d,
if(msg.d == 1){
alert("题库中单选题数量不足,请减少题量!");
return false;
}else{
alert("dd");
}

不行的话,就把后台函数的第一行和返回值的哪行贴出来看看。