【发布时间】:2013-12-02 00:32:10
【问题描述】:
我在使用 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 控制台中没有任何错误。
你知道发生了什么吗?
【问题讨论】:
-
您是否记录了错误回调是偶然返回的?
-
我记录了错误,错误是“Uncaught SyntaxError: Unexpected token
-
好的,现在我明白了。 jQuery 认为我的有效载荷是 json,并尝试解析它。但是是 HTMLO 所以我必须声明数据类型!!!