我使用以下代码将html动态加载到codeigniter视图中:
$.ajax({
type:"POST",
url: "Ajax/getHtml",
data: { u : contents },
dataType: 'html',
success: function(data) {
html = data;
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('error');
console.log(jqXHR,textStatus, errorThrown);
},
done: function(){
console.log(' here is the html ', html);
}
});
我可以看到html正在firebug中正确返回。但是'done'功能没有执行。我做错了什么?
答案 0 :(得分:3)
你应该.done
喜欢这个
$.ajax({
type: "POST",
url: "Ajax/getHtml",
data: {
u: contents
},
dataType: 'html',
error: function(jqXHR, textStatus, errorThrown) {
console.log('error');
console.log(jqXHR, textStatus, errorThrown);
}
}).done(function(html) {
console.log(' here is the html ' + html);
});
答案 1 :(得分:1)
通常设计错误同时拥有success
处理程序和.done
承诺处理程序,特别是后者不属于在$.ajax
调用中 - 它从AJAX调用的返回值中链接:
现代模式是:
$.ajax({
type: "POST",
url: "Ajax/getHtml",
data: {
u: contents
},
dataType: 'html'
}).done(function(html) { // nb: data is passed here
console.log('here is the html:' + html);
}).fail(function(jqXHR, textStatus, errorThrown) {
//...
});
答案 2 :(得分:-2)
$.ajax({
url: "test.html",
context: document.body
}).done(function() {
$( this ).addClass( "done" );
});
您错过了"。"已完成