servlet的$ ajax回调问题

时间:2014-09-24 21:57:28

标签: jquery ajax json jsp

好的,这是问题......

我将所有“已保存的锻炼”存储在Google数据存储区中作为文本对象。 当我查看保存的锻炼时,服务器返回大量JSON对象中的所有已保存锻炼。我解析这些并在​​JSP页面上按名称显示它们。

一切正常。

现在,如果我想再次使用已保存的锻炼,我只需从数组中取出锻炼JSON,并使用jQuery $ ajax调用servlet(转发到“showWorkout.jsp”)再次显示锻炼(使用传入的JSON)。

问题似乎是$ ajax调用需要回调。这是对的吗?

正如您所看到的,我正在尝试从我传递JSON的servlet转发到“showWorkout.jsp”。回调似乎阻止了这一点。 “showWorkout.jsp”永远不会显示,当前页面也不会更改。

我可以使用回调调用“showWorkout.jsp”并包含JSON来显示锻炼吗?我宁愿没有将整个JSON作为URL中的查询参数。

OR ...我可以禁用回调并允许servlet转发到JSP吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在使用jquery,对吧?所以回调就是你在success : function(data) {...}中定义的函数。问题是如此担心回调意味着我正在以旧式的方式进行,而不是实际使用jquery。

如果您试图转发回执行ajax呼叫的jsp,则根本不能获得ajax。如果它工作,那将刷新页面,而不是重新编写页面是ajax的重点。你所做的是将ajax调用视为异步函数调用,并在触发回调时对响应执行某些操作:

例如,在消息框中打印响应:

success : function(data) { alert(data); }

或者,将响应放入div:

success : function(data) { document.getElemenyById('my_div').innerHTML = data; }

如果您确实希望将servlet转发到其他页面或返回同一页面,请使用常规html表单提交。