当我尝试append()
$.get()
到容器元素的XHTML结果时,
$.get("my-webservice", function(data){
$("#some-container").append(data);
});
我收到错误:
TypeError: 'null' is not an object (evaluating 'e.ownerDocument')
我也尝试过:
$("#some-container").append($(data));
并得到同样的错误。 load()
工作正常,所以我知道网络服务正在返回好的数据:
$("#some-container").load("my-webservice");
在webservice端,如果我在返回$.get()
之前将XHTML编码为字符串,则一切都按预期工作。 append()文档说它接受一个字符串,DOM元素或jQuery对象 - 我怀疑我得到了一些错误的东西。有什么建议吗?
webservice只返回一些简单的bootstrap XHTML:
<div class="row">
<div class="span5">Div stuff</div>
<div class="span4">More div stuff</div>
</div>
答案 0 :(得分:4)
jQuery正在尝试对使用$.get
函数时返回的文档类型做出最佳猜测,而不指定dataType
。作为$.get
函数的最后一个参数,请尝试添加“html”以指定dataType
。有关详细信息,请参阅jQuery documentation。
$.get("my-webservice", function(data){
$("#some-container").append(data);
}, 'html');
答案 1 :(得分:0)
尽管调试控制台建议浏览器将webservice输出视为DOM对象,但我最终意识到内容类型未正确设置。对Web服务进行的这些更改中的任何一个或两个都会导致jQuery正确猜测dataType
:
text/html
<!DOCTYPE html>