can';t从ajax调用的servlet转发到另一个jsp
我正在使用ajax代码调用servletcan';t从ajax调用的servlet转发到另一个jsp,ajax,servlets,Ajax,Servlets,我正在使用ajax代码调用servlet $.ajax({ url: 'servletName', data: { userID: selectedID }, type: 'post' }); 我可以打印servlet中的值 但是我不能转发到另一个jsp。。。。。 servlet代码是 id = requ
$.ajax({
url: 'servletName',
data: {
userID: selectedID
},
type: 'post'
});
我可以打印servlet中的值
但是我不能转发到另一个jsp。。。。。
servlet代码是
id = request.getParameter("userID");
System.out.println("Selected ID : "+id);
request.setAttribute("newID", id);
RequestDispatcher rd = request.getRequestDispatcher("/newpage.jsp");
rd.forward(request, response);
如果我从表单提交按钮调用这个servlet,它就会工作。
但它不是从ajax代码转发到另一个JSP。
有什么不同的方法吗????
任何人都可以在
$中提供帮助。ajax
,添加以下内容:
dataType: 'text'
var url = "(your url)";
$(location).attr('href', url);
在成功部分,添加以下内容:
dataType: 'text'
var url = "(your url)";
$(location).attr('href', url);
您需要了解这样一个事实:当您从ajax发送http请求时,这意味着您是在独立的线程中发送请求,而不是在主线程中(发送请求的页面本身)。因此servlet上的重定向不会反映在客户端。为了实现这一点,将要重定向到的URL作为对请求的响应发送回,ajax的成功方法就是使用java脚本window.location(URL) 在servlet上
JSONObject jobj = new JSONObject()
String urlToRedirect = "test.jsp";
jobj.put("url",urlStr);
response.getWriter().write(jobj.toString());
在客户端
$.ajax({
url: 'servletName',
data: {
userID: selectedID
},
type: 'post',
success: function(data){
window.location = data.url;
}
});
如果它不转发到JSP,它会做什么?会发生什么?有例外吗?你怎么判断前锋没有出现?