3

当我尝试append()将 XHTML 结果$.get()转换为容器元素时,

$.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");

在 web 服务端,如果我在返回之前将 XHTML 编码为字符串$.get(),则一切都按预期工作。append()文档说它接受字符串、DOM 元素或 jQuery 对象——我怀疑我弄错了。有什么建议么?

网络服务只是返回一些简单的引导 XHTML:

<div class="row">
  <div class="span5">Div stuff</div>
  <div class="span4">More div stuff</div>
</div>
4

2 回答 2

4

当您使用该$.get函数而不指定dataType. 作为$.get函数的最后一个参数,尝试添加 'html' 来指定dataType. 有关更多信息,请参阅jQuery 文档

$.get("my-webservice", function(data){
    $("#some-container").append(data);
}, 'html');
于 2013-03-17T18:30:36.603 回答
0

尽管调试控制台提示浏览器将 Web 服务输出视为 DOM 对象,但我最终意识到内容类型设置不正确。对 web 服务的这些更改中的一个或两个都会导致 jQuerydataType正确猜测:

  1. 将响应内容类型设置为text/html
  2. <!DOCTYPE html>响应前的输出
于 2013-03-23T00:22:49.783 回答