【发布时间】:2016-10-17 16:55:36
【问题描述】:
我有一个使用 Servlet 和 JQuery 的 Java Web 应用程序。我在 servlet 上使用 $.get() 方法,该方法只是将对象转换为 JSON 并将其写回。这曾经有效,但由于某种原因它不再有效。我在调试中发现 $.get() 方法根本没有被调用,但 Javascript 文件的其余部分是。它只是完全跳过了 $.get() 方法。不过,我似乎无法弄清楚为什么。这是我的代码:
JavaScript:
window.onload = function () {
$.get('OrdersToJSONServlet', function (responseText) {
// ...I use responseText to populate Google Charts
}
Java Servlet:
/**
* <h1>Servlet implementation for converting order objects to JSON for use with JS</h1>
*/
@WebServlet("/OrdersToJSONServlet")
public class OrdersToJSONServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public OrdersToJSONServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param request
* @param response
* @throws javax.servlet.ServletException
* @throws java.io.IOException
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Object orders = request.getSession().getAttribute("orders");
String json = new Gson().toJson(orders);
try {
response.getWriter().write(json);
} catch (IOException e) {
System.out.println("problem parsing JSON");
}
}
}
我认为 JQuery 引用的注释可能在某种程度上是不正确的,但我不确定这是否是真正的问题。提前感谢您的帮助!
【问题讨论】:
-
如果您只是从浏览器手动点击 json 链接,您会得到任何响应吗?
-
老实说,我更像是一名 Java 开发人员而不是 Web 开发人员,这是我的第一个 Web 项目。我怀疑你在说的是我可能不知道的谷歌开发者工具的一个功能。但是,如果我在简单地将 responseText 的内容打印到控制台时使用 javascript 控制台并调用 $.get,我会得到 null。如果我将 System.out.println 添加到 servlet 或使用断点,它永远不会被调用,支持 $.get 永远不会被触发的假设。
-
不要误会我的意思,但我的意思是,如果你去浏览器地址栏并将绝对 url 复制粘贴到 servlet 并回车,看看是否有任何错误或你得到了想要的回应?
-
感谢您的帮助,我实际上发现我的文件中有一个window.onload函数,一旦删除,一切正常。
标签: javascript java jquery jsp servlets