简单的ajax调用不起作用,但响应是可以的

时间:2013-12-01 16:20:18

标签: jquery ajax sinatra

我用jQuery和Ajax在3到4个小时内挣扎。我有一个简单的ajax调用,必须替换节点内的HTML。

HTML就是这样:

<ul class="nav navbar-nav pull-right" id="notify">
   <!-- BEGIN NOTIFICATION DROPDOWN -->
   <li></li>
</ul>

我的jQuery ajax调用就是这个

$(document).on("click", ".formato", function (e) {
    e.preventDefault();
    var a = $(this).data('format');
    var b = $(this).data('content');
    $.ajax({
        url: '/magazine/article',
        type: 'POST',
        data: {
            format: a,
            content: b,
        },
        success: function (data) {
            console.log(data);
            $('#notify').replaceWith(data);
        },
        error: function () {
            //if fails      
        }
    });
});

我检查了Chrome调试器的XHR响应并且响应正常:我的Sinatra应用程序返回<li>元素以放置在<ul>内。但没有任何事情发生,console.log也无法正常工作。

我在js控制台中没有任何错误。

你知道发生了什么吗?

1 个答案:

答案 0 :(得分:0)

不要使用replaceWith,因为它会将您的ul元素替换为响应中的内容(本例中为li),这是不正确的,请改用html()函数:< / p>

$('#notify').html(data)