3

append()aの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()正常に動作するので、Webサービスが適切なデータを返していることがわかります。

$("#some-container").load("my-webservice");

Webサービスの最後で、に戻る前にXHTMLを文字列としてエンコードすると$.get()、すべてが期待どおりに機能します。append()のドキュメントには、文字列、DOM要素、またはjQueryオブジェクトを受け入れると書かれています-私はそれについて何か間違っていると思います。助言がありますか?

Webサービスは単純なブートストラップXHTMLを返しています。

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

2 に答える 2

4

$.getjQueryは、を指定せずに関数を使用したときに返されるドキュメントの種類を最もよく推測しようとしています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 に答える