Javascript 有些命令不';t在ajax完成或成功后执行

Javascript 有些命令不';t在ajax完成或成功后执行,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,在ajax完成或成功后的下面代码中$(“.cdmodels”).append(结果)不执行,但执行下两行。我检查了不同的方法,但它没有解决。请帮帮我 $('.load-more').on('click', function (e) { e.preventDefault(); var count = $(this).attr('data-value'); var btn = $(this).button('loading'); $.ajax({ ur

在ajax完成或成功后的下面代码中
$(“.cdmodels”).append(结果)不执行,但执行下两行。我检查了不同的方法,但它没有解决。请帮帮我

$('.load-more').on('click', function (e) {
    e.preventDefault();
    var count = $(this).attr('data-value');
    var btn = $(this).button('loading');
    $.ajax({
        url: "@Url.Action(MVC.Library.Index())",
        data: { count: count },
        dataType: 'json',
        async: true,
        method: 'POST',
        complete: function (result) {
            $(".cdmodels").append(result);
            btn.button('reset');
            btn.attr("data-value", parseInt(count) + 1);

        }
    });
});
更新:

浏览器调试:


您是否使用try/catch块检查过它

...
complete: function (result) {
  try{
    $(".cdmodels").append(result);
    btn.button('reset');
    btn.attr("data-value", parseInt(count) + 1);
  }catch(e) {
    console.log("Something went wrong! Watch for 'e' and 'result'");
    debugger;
  }
}
...

从打开devtools开始。

调用
complete
将接收一个具有多个属性的对象。您不能直接使用它来更新DOM。如果需要,可以使用
responseText
属性

这应该行得通

$(".cdmodels").append(result.responseText);
或者更好地使用
done()
回调函数

$.ajax({
    url: "@Url.Action("Index")",
    data: { count: 2 },
    method: 'POST'
}).done(function (res) {
    console.log('done');
     $(".cdmodels").append(res);
});

从jQuery 3.0开始,将删除
jqXHR.success()
error()
complete()
回调。您应该使用
jqXHR.done()
fail()
,和
always()

通常在处理AJAX调用时,如果遇到问题,应按如下所示进行调试

记录响应<代码>控制台日志(响应)

检查响应类型<代码>控制台.log(Object.prototype.toString.call(response)


检查
cdmodels
元素是否存在。是否尝试使用浏览器调试代码?出现了什么错误?执行下两行,因为这两行不取决于ajax调用的结果。这似乎是ajax调用响应的问题。尝试调试应用程序,并检查
结果是否符合要求r不存在。我可以用我的浏览器调试代码。它不会返回任何错误,但
append
命令不会添加
result
数据。如果返回的数据是json,那么我想你必须使用json解析。var message=json.parse(data);对于ajax调用,
Index
action方法返回什么?HTML标记还是JSON?再次感谢,先生。实际上,这是为了诊断问题。不客气。啊,我刚刚意识到,诊断您描述的问题还不够,因为没有例外。:)
$('.load-more').on('click', function (e) {
    e.preventDefault();
    var count = $(this).attr('data-value');
    var btn = $(this).button('loading');
    $.ajax({
        url: "@Url.Action(MVC.Library.Index())",
        data: { count: count },
        dataType: 'json',
        async: true,
        method: 'POST',
        complete: function (result) {
            // In your case it should be result.responseText
            $(".cdmodels").append(result.responseText);
            btn.button('reset');
            btn.attr("data-value", parseInt(count) + 1);

        }
    });
});