【问题标题】:JQuery $.get() on Java Servlet Not WorkingJava Servlet 上的 JQuery $.get() 不工作
【发布时间】: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


【解决方案1】:

对于其他对这种情况感兴趣的人,我自己解决了这个问题。 $.get 方法位于 window.onload 内部。我的 Javascript 在外部文件中,这两个不兼容。愚蠢的错误!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2017-08-18
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    相关资源
    最近更新 更多