繁体   English   中英

难以从AJAX响应中剥离HTML标签

[英]Having difficulty stripping HTML tags from an AJAX response

我有一个非常简单的Web应用程序,遇到了麻烦。 我有两个文件。

的helloWorld.jsp:

int result = 0;
out.println("<html><body>"+result+"</body></html>");

getHelloWorld.jsp:

<html><head>
<script type="text/javascript>
 function getHelloWorld() {
                $.get("/helloWorld.jsp, function(data) {

                    var temp = $.trim(data);
                    temp = temp.text(); //have also tried temp.html() and a few other things
                    $('#status').val(temp);

                });
            }
            window.onload = function() {
                getHelloWorld();
            };

</script></head>
<body><div id='status'></div></body></html>

我的问题是:加载getHelloWorld.jsp时,我什么都没得到(上面的代码未产生输出),或者输出了“ 0”。 我试图实现的结果是仅打印出没有HTML标签的“ 0”。 我无法使用简单的查找和替换解决方案,因为我需要这个简单的代码来处理更复杂的响应。 我想我可以做正则表达式,但是如果已经有处理此问题的功能,我宁愿不要重新发明轮子。

是否有任何(简单)方法可以如上所述从AJAX调用中剥离HTML标签?

获取HTML并将其放入jQuery对象(这将使jQuery将其放入文档片段并解析HTML),然后从jQuery对象中提取文本:

       function getHelloWorld() {
            $.get("/helloWorld.jsp", function(data) {

                var temp = $(data).text();
                $('#status').val(temp);

            });
        }
        window.onload = getHelloWorld;

工作演示: http : //jsfiddle.net/jfriend00/9hxrqgzn/


有人可能想知道为什么只需要一个数字就为什么要从服务器返回HTML。 也许您应该返回JSON而不是那只是数字,然后jQuery将为您处理JSON响应并给您所需的数字。

如果使用JSP,最好以这种方式(在服务器端)包括jsp页面:

<body>
    <div id='status'>
        <jsp:include page="helloWorld.jsp"/>
    </div>
</body>

如果要使用JS,请尝试以下操作:

        $.get("/helloWorld.jsp", function(data) 
        {
            document.getElementById("status").innerHTML = data;
        });

但是,如果要使用JQuery,请尝试以下操作:

$('#status').load("helloWorld.jsp");

当您像上面这样包含时,它将剥离html和body标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM