在写Jsp时,有时候要把请求路径放到Js文件中,使用Ajax做异步处理。可是这时会发现,由于路径的问题,在发出请求的时候会自动加上当前的路径,导致发出错误的请求。在Jsp中,我们可以在请求路径前加上“<%=request.getContextPath()%>”来得到完全路径,避免当前路径的影响。可是在单独的Js文件中是不能使用这种方法的。为了解决这个问题,下面有两种方法可以选择:
一、在后端接受请求时加上“*”,如下
@RequestMapping(value = "*/admin/addUser.do", method = RequestMethod.POST)
这样就可以接受所有以admin/addUser.do结尾的请求,所以就不用担心加前缀的问题,同时也不会影响拦截器的效果。
二、在Ajax中URL加上“../”,比如原来的请求是”url:admin/addUser.do”,现在改为”url: ../admin/addUser.do”这样写就可以了,而且发出的请求路径也是理想中的方式,当前路径不会再有干扰。