Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery,使用数据类型的ajax调用的问题是json_Jquery_Ajax_Json_Jquery 1.5 - Fatal编程技术网

jquery,使用数据类型的ajax调用的问题是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) {

升级到jQuery1.5.2之后,在返回json数据时,我的ajax调用开始出现问题

错误是(由下面的templateGet()返回):

Ajax调用失败:[对象] 解析器错误 JQUERY15204083801534161517_1302269320612 没有人打电话来

下面是返回json的示例:

{"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,谢谢-很高兴能帮助我解决这个问题。