后台的一段代码如下:
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");
}
不行的话,就把后台函数的第一行和返回值的哪行贴出来看看。