【问题标题】:jquery, problem with ajax call with dataType is jsonjquery,使用 dataType 进行 ajax 调用的问题是 json
【发布时间】:2011-04-08 13:35:05
【问题描述】:

升级到 jQuery 1.5.2 后,当返回 json 数据时,我的 ajax 调用开始出现问题。

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

Ajax 调用失败:[object Object] 解析器错误 jQuery152040843801534161517_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();
        }
    });
}

任何人都可以看到我做错了什么?

【问题讨论】:

  • 您在使用验证插件吗?如果是这样,请确保您获得与 1.5 兼容的新副本 - 这是一个已知问题,我也遇到过。
  • 非常感谢,刚刚将 jQuery Validation Plugin 从 1.7.0 升级到 1.8.0,一切似乎都在工作 - 发表您的评论作为答案,但不接受它
  • 好的,谢谢 - 很高兴帮助

标签: jquery ajax json jquery-1.5


【解决方案1】:

您在使用验证插件吗?如果是这样,请确保您获得与 1.5 兼容的新副本 - 这是一个已知问题,我也遇到过。

https://github.com/jzaefferer/jquery-validation

【讨论】:

  • 这也解决了我的问题。
【解决方案2】:

首先需要解析返回的JSON值......

你不能马上使用data.subject

首先您需要下载json2.js 文件并添加到您的应用中..

然后解析变量data

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);
}

【讨论】:

    【解决方案3】:

    在jquery1.5.2.js中找到这一行:

    d.ajaxPrefilter("json jsonp", function (b, c, e)
    

    改成

    d.ajaxPrefilter("jsonp", function (b, c, e)
    

    这行得通,我的所有 $.ajax 函数都再次满意了。


    来源 :: http://debeerdev.wordpress.com/2011/04/13/jquery-1-5-2-json/

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多