ajax返回参数判断时不相等的问题,eval()

今天在写代码的时候发现一个小问题,ajax请求后台返回“SUCCESS”到前台时,前台判断时为false,即msg == “SUCCESS” 返回false,代码如下:

后台Java代码

@RequestMapping(value="save_info")
    @ResponseBody
    public String modifyInfo(HttpServletRequest request,ModelMap modelMap) {
        String mString = "";
        try {
          ... ...
            int num = expertorsServices.updateExpertors(expertors);
            if (num == 1) 
                mString = "SUCCESS";//修改成功返回SUCCESS
            else
                mString = "FAIL";//修改失败,返回FAIL
                    
        } catch (Exception e) {
            e.printStackTrace();
            mString = "FAIL";
        }
      //  System.out.println(mString);
        return mString;
    }

前台ajax请求

              var zname = $("#zname").val();
        	  var zsex = $("#zsex[name='zsex']:checked").val();
        	  var zdanwname = $("#zdanwname").val();
        	  var ztelphone = $("#ztelphone").val();
        	  var zhiwei = $("#zhiwei").val();
        	  var zhichen = $("#zhichen").val();
        	  $.ajax({
        			type:"post",
        			dataType:"text",
        			data:{"zname":zname,
        				"zsex":zsex,
        				"zdanwname":zdanwname,
        				"ztelphone":ztelphone,
        				"zhiwei":zhiwei,
        				"zhichen":zhichen
        			},
        			url:"save_info.dx",
        			success:function(msg){
        				if(msg == "SUCCESS"){//注意这个地方的返回值为false
        				 layer.alert('修改成功!',{
        		               title: '提示框',				
        					   icon:1,			   		
        					  });
        				}else{
        					layer.alert('修改失败!',{
         		               title: '提示框',				
         					   icon:1,			   		
         					  });
        				}
        			},
        			error:function(){
        				layer.msg(msg,{icon: 6,time:1000});
        			}
        			
        		});

没有找到原因,最终请教同事,在js代码注释的那行判断条件修改为

eval(msg) == "SUCCESS"   问题解决,记录一下,避免下次跳坑

猜你喜欢

转载自blog.csdn.net/Yan9018/article/details/82142529