jquery,使用数据类型的ajax调用的问题是json
升级到jQuery1.5.2之后,在返回json数据时,我的ajax调用开始出现问题 错误是(由下面的templateGet()返回): Ajax调用失败:[对象] 解析器错误 JQUERY15204083801534161517_1302269320612 没有人打电话来 下面是返回json的示例:jquery,使用数据类型的ajax调用的问题是json,jquery,ajax,json,jquery-1.5,Jquery,Ajax,Json,Jquery 1.5,升级到jQuery1.5.2之后,在返回json数据时,我的ajax调用开始出现问题 错误是(由下面的templateGet()返回): Ajax调用失败:[对象] 解析器错误 JQUERY15204083801534161517_1302269320612 没有人打电话来 下面是返回json的示例: {"subject":"Test subject","body":"Test body"} 这是jQuery函数 function ajax_templateGet(templateid) {
{"subject":"Test subject","body":"Test body"}
这是jQuery函数
function ajax_templateGet(templateid) {
showLoading();
var query = '?action=get_template' + '&templateid=' + templateid;
$.ajax({
type: 'POST',
url: 'script/ajax/mail_template/mail_template.ashx' + query,
data: '',
dataType: 'json',
success: function(data) {
$("#preview_subject").empty().html(data.subject);
$("#preview_body").empty().html(data.body);
},
error: function(xhr, status, error) {
$.jGrowl($.i18n._('Ajax call failed: ' + xhr + ' ' + status + " " + error), { header: $.i18n._('Ajax call failed!') });
},
complete: function(jqXHR, textStatus) {
hideLoading();
}
});
}
任何人都可以看到我做错了什么?首先需要解析返回的JSON值 您不能立即使用
数据。主题
首先,你需要下载文件并添加到你的应用程序中
然后解析变量数据
var response=eval(“+JSON.stringify(data)+”)代码>
然后在您发布的代码中使用变量response
,而不是data
success: function(data) {
var response=eval("("+JSON.stringify(data)+")");
$("#preview_subject").empty().html(response.subject);
$("#preview_body").empty().html(response.body);
}
您正在使用验证插件吗?如果是这样,请确保您得到一个与1.5兼容的新副本-这是一个已知的问题,也是我遇到的问题
在jquery1.5.2.js中找到以下行:
d.ajaxPrefilter("json jsonp", function (b, c, e)
换成
d.ajaxPrefilter("jsonp", function (b, c, e)
这就行了,我所有的$.ajax函数都很高兴了
来源::您是否正在使用验证插件?如果是这样的话,请确保你得到一个与1.5兼容的新版本-这是一个已知的问题,也是我遇到过的问题。非常感谢,刚刚将jQuery验证插件从1.7.0升级到1.8.0,而且一切似乎都正常-将你的评论作为答案发布,我会接受itOK,谢谢-很高兴能帮助我解决这个问题。