Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery JavaServlet中的HTML字符串在Javascript中解释为#文档,而不是字符串_Jquery - Fatal编程技术网

Jquery JavaServlet中的HTML字符串在Javascript中解释为#文档,而不是字符串

Jquery JavaServlet中的HTML字符串在Javascript中解释为#文档,而不是字符串,jquery,Jquery,我们有一个正在运行的JavaServlet,它为我们提供了所需的数据。问题在于Jquery解释这些数据的方式 信息通过响应编写器发送。(例如:信息) 这有时有效,有时无效。所以我们检查了chrome中的控制台,让代码停在append行。当发送多条消息时,成功函数中的“数据”被解释为一个大字符串 "<div class="message" id="153" onclick="loadFullMessage(153)"></div> <div class="messag

我们有一个正在运行的JavaServlet,它为我们提供了所需的数据。问题在于Jquery解释这些数据的方式

信息通过响应编写器发送。(例如:信息)

这有时有效,有时无效。所以我们检查了chrome中的控制台,让代码停在append行。当发送多条消息时,成功函数中的“数据”被解释为一个大字符串

"<div class="message" id="153" onclick="loadFullMessage(153)"></div>
<div class="message" id="154" onclick="loadFullMessage(154)"></div>
<div class="message" id="155" onclick="loadFullMessage(155)"></div>
<div class="message" id="156" onclick="loadFullMessage(156)"></div>
"
”
"
但当仅发送1条message/div时,它将被解释为“#document”对象

#document
    <div class=​"message" id=​"174" onclick=​"loadFullMessage(174)​">​…​</div>​
#文档
​…​​
可以在chrome控制台中看到该消息,但在附加以下错误时遇到“未捕获错误:层次结构\u请求\u错误:DOM异常3”


如何始终将数据解释为字符串而不更改为文档对象?

我刚刚通过向
ajax
调用添加
dataType
解决了一个非常类似的问题:

$.ajax({
  type: 'POST',
  url: 'message.jsp',
  data: { *Needed data* },
  success: function(data) {
    $('#element').append(data);
  }
});
另请参见以下两个答案:


我刚刚通过在
ajax
调用中添加
dataType
解决了一个非常类似的问题:

$.ajax({
  type: 'POST',
  url: 'message.jsp',
  data: { *Needed data* },
  success: function(data) {
    $('#element').append(data);
  }
});
另请参见以下两个答案:


    • @boblail是正确的-将
      数据类型
      更改为
      ajax
      会成功。但是,有时您会使用不打算修改的第三方库。在我的例子中是jqueryui


      发送
      Content-Type:application/xhtml+xml
      会导致JQuery根据响应构建DOM文档。将您的
      内容类型
      设置为
      文本/html
      ,您就没事了。

      @boblail是正确的-将
      数据类型
      更改为
      ajax
      会成功。但是,有时您会使用不打算修改的第三方库。在我的例子中是jqueryui

      发送
      Content-Type:application/xhtml+xml
      会导致JQuery根据响应构建DOM文档。将您的
      内容类型
      设置为
      text/html
      ,您就没事了。

      通过在ajax请求中添加“数据类型:'html'”来解决…通过在ajax请求中添加“数据类型:'html'”来解决。。。
      $.ajax({
        type: 'POST',
        url: 'message.jsp',
        data: { *Needed data* },
        success: function(data) {
          $('#element').append(data);
        }
      });