Java 使用ajax调用servlet
根据我的理解和使用,AJAX用于从客户机向服务器发出请求,然后用新内容更新客户机上的HTML DIV 但是,我想使用从客户端到servlet的AJAX来验证URL的存在。如果结果不好,我可以在servlet中设置一条错误消息,并将其返回到客户端页面进行显示 但是有人知道,如果结果是肯定的,我是否可以让我的servlet自动向用户显示另一个(下一个)页面?或者,当收到肯定的结果时,该请求应该由客户端上的Javascript触发 谢谢 Morgan先生。在您的成功回访(在客户端)中,将Java 使用ajax调用servlet,java,ajax,servlets,Java,Ajax,Servlets,根据我的理解和使用,AJAX用于从客户机向服务器发出请求,然后用新内容更新客户机上的HTML DIV 但是,我想使用从客户端到servlet的AJAX来验证URL的存在。如果结果不好,我可以在servlet中设置一条错误消息,并将其返回到客户端页面进行显示 但是有人知道,如果结果是肯定的,我是否可以让我的servlet自动向用户显示另一个(下一个)页面?或者,当收到肯定的结果时,该请求应该由客户端上的Javascript触发 谢谢 Morgan先生。在您的成功回访(在客户端)中,将self.lo
self.location.href
设置为新URL。HTML是一种“拉”技术:浏览器中不会显示以前未从服务器请求的内容
因此,您没有机会“让servlet自动显示不同的页面”。您必须说服您的浏览器(从JavaScript)请求不同的页面。由于您的ajax调用是在后台执行的,因此servlet返回的结果将返回到ajax调用,然后该调用将根据结果进行操作。e、 g.触发另一页的显示。(这可能已经出现在ajax响应中,然后您可以在div或iframe中显示它,或者…根据,
XMLHttpRequest
在服务器返回完整的301/302重定向并满足新请求的请求时,强制webbrowser到新位置。然而,这在某些浏览器中失败,比如某些谷歌浏览器版本
为了获得最佳的交叉浏览器结果,当重定向的URL不符合相同的源策略规则时,您需要更改JavaScript端的位置。您最终可以让servlet发送状态和所需的新URL。例如
Map<String, Object> map = new HashMap<String, Object>();
map.put("redirect", true);
map.put("location", "http://stackoverflow.com");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
resposne.getWriter().write(new Gson().toJson(map));
谢谢它工作得很好。我通过servlet尝试了这一点,它在调用页面上显示了被调用的页面。但是self.location.href运行得很好。我们刚刚在Chrome、IE、Opera、Safari和Firefox中试用了该功能,一切都很好。但还有很多事情要做,所以我会记住这一点。我不会依赖它,你可能也依赖于浏览器版本。只需在JS中使用
window.location
进行重定向即可。
if (response.redirect) {
window.location = response.location;
}