我在从 JSP 页面返回对 AJAX 的响应时遇到问题。
我试过这段代码:
response.getWriter().print(result);
您要返回的结果类型是什么?如果是纯文本或html,则在写出之前设置内容类型。
response.setContentType("text/html");
response.getWriter().write(result);
如果您尝试返回其他 java 对象,如 list 或 map,则应将其转换为 json 对象并相应地设置内容类型,
response.setContentType("application/json");
response.getWriter().write(json);
我用于将 XML 内容从 JSP 返回到 Ajax 的方法:
<%@ page contentType="text/xml;charset=UTF-8"%>
<%
[....i did my stuff here ....]
response.getWriter().write(res.toString());
%>
奇迹般有效!
我没有使用 XML 以外的其他响应,但我想,如果你设置contentType
得当,它会是相似的。
如果您尝试向 AJAX 查询返回 HTML 响应,那么您需要编写“常规”JSP,以便在您调用它时生成 HTM 页面。
如果您尝试返回非 HTML 响应,那么我认为使用 Servlet 会更好。