无法在Ajax和qTip2中显示HTML servlet的响应

时间:2015-04-15 15:20:07

标签: java javascript jquery ajax servlets

我正在尝试在jsp中的qTip2工具提示中显示从servlet响应接收的文本(或html)。我几乎所有的东西都在工作,并且已经使用Firebug验证了servlet正在被调用并且正在返回文本,但是当我尝试使用' html'我的ajax调用中的(或数据)变量,我收到一个错误: HierarchyRequestError:无法在层次结构中的指定点插入节点。

我已尝试在JavaScript提醒中显示html,显示的内容为:[object XMLDocument]。

以下是事件序列:

1.用户点击HTML文本的一部分,其中定义了一个指向servlet并传递参数的链接

2.ajax调用servlet进行一些处理并返回text或html

3.文本显示为qTip2的工具提示

如何正确处理来自servlet的响应并操纵从中接收的文本?

Ajax电话:

$(".ajax_link").click(function(e) {
    e.preventDefault();
    var $this = $(this);
    var link = $(this).attr('href'); //Gets link url

    $.ajax({
        type: "GET",
        url: link,
        cache: false,

    }).done(function(html) {

        $this.qtip({
            content: {
                text: html //<--this causes error above
              //text: "<table><tr><th>Team</th></tr></table>"  <--this works fine
            }
        });

        $this.qtip('toggle', true);

    });
});

Servlet代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    System.out.println("inside doGet");

    String var1 = "<table><tr><th>Team</th></tr></table>";

    //var1 = request.getParameter("var1");

    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    out.print(var1);
    out.flush();
    out.close();
}

1 个答案:

答案 0 :(得分:3)

在ajax请求中将dataType作为html传递 即。

$.ajax({
        type: "GET",
        url: link,
        cache: false,
        dataType : "html"

    }