在一次请求中
$.ajax({
cache : true,
type : "POST",
url : "getDataList.action",
async : false,
error : function(request) {
alert("Connection error");
},
success : function(data) {
var jsonData = eval(data);
$("#weather").val(jsonData.weatherInfo);
}
});
报错: SyntaxError: missing ; before statement
很是生气 明明没有少;却提示错误,在网上搜了好多答案 都是把特殊符号加转义符的方法 但是并不适合我的这种
后来发现需要指定dataType:'json' 可以完美解决
$.ajax({
cache : true,
type : "POST",
url : "getDataList.action",
async : false,
dataType: 'json',
error : function(request) {
alert("Connection error");
},
success : function(data) {
jsonData = eval(data);
$("#weather").val(jsonData.weatherInfo);
}
});
另附:在js 中获取后台传递过来的json结果,一般使用var res=eval(${data}) 而不是使用var res='${data}'
ajax 请求后台不报错但是总是执行error function 方法
产生此原因
1 可能你使用了异步提交(async=true)
2 你在ajax请求中指定了dataType 但是你后台传过来的参数没有按照你指定的类型传过来