AJAX 返回之后页面提示 undefined

本文探讨了在使用AJAX进行前后台交互时,遇到返回值为undefined的问题,并分享了一种解决方案,通过判断并转换JSON格式确保数据正确解析。

AJAX 返回之后页面提示 undefined

该ajax请求一开始条件不满足时返回的值没问题,没想到最后的返回值却出现了页面提示 undefined,实在是没想通。

代码

Map<String, String> map = new HashMap<String, String>();
boolean flg = false;
String msg = "异常错误";
String jsonStr = "";

	map.put("result", "false");
	map.put("msg", msg);
	return JSONObject.toJSONString(map);

每次返回的都是相同的方式,最后却不一致,前边分支返回值都是OK的。下面是前台js。

var data = $("#addForm").serialize();
	$.ajax({
		url:appServer +"xxx.json",
		data:data,
		type:"POST",
		dataType:"json",
		success:function(jsonObj){
			if(jsonObj.result=="true"){
				alert(jsonObj.msg);
			}else{
				alert(jsonObj.msg);
			}
		},
		error:function () {
            alert("操作异常");
		}
	});

只能换种方式了

var data = $("#addForm").serialize();
	$.ajax({
		url:appServer +"xxx.json",
		data:data,
		type:"POST",
		dataType:"json",
		success:function(jsonObj){
			var obj;
            //判断是否是json格式
			console.log(typeof jsonObj);
            if((typeof jsonObj=='object')&&jsonObj.constructor==Object){
                obj=jsonObj;
            }else{
                obj  = eval("("+ jsonObj +")");
            }
            console.log(typeof obj);
			if(obj.result=="true"){
				alert(obj.msg);
			}else{
				alert(obj.msg);
			}
		},
		error:function () {
            alert("操作异常");
		}
	});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值