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