lyldj2012
lyldj2012
采纳率100%
2017-04-10 08:54

SpringMVC 遇到个小问题

3
已采纳

现有个Controller类
@Controller
@RequestMapping("/aaa")
public class testController{

@RequestMapping("/b1")
public String test1(){
       return xxx;
    }
    @RequestMapping("/b2")
    public String test2(){
       retrun "index";
    }

}
test2方法我用来跳转到index页面,test1方法用于接受index页面的ajax请求,并返回json数据,
那么我跳转页面时候访问http://localhost:8080/xxx/aaa/b2 是没问题的

但是我转到index页面之后,再用ajax法请求(url:aaa/b1)就会出现404,但是直接请求
(url:b1)就没问题?类的@RequestMapping失效了?
我开了log4j的debug,发现ajax请求时候自动加上了aaa,如果我再请求aaa/b1地址就变成了
aaa/aaa/b1,请问是什么原因呢?
ajax请求如下
$.ajax({
type : "post",
url : "aaa/b1",
dataType:"json",
contentType : "application/json;charset=utf-8",
data : {
"gname" : gname
},
async:true,
success : function(data){
alert(data);
},
error : function(XMLHttpRequest,e,textStatus){
alert(e + " " + XMLHttpRequest.status+ " " +textStatus);
}
});

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • mcx01 mcx01 4年前

    是因为你在页面里面通过ajax去请求数据时会自动在你的url上面加了aaa这个路径,所以你的url直接写b1就可以了

    点赞 评论 复制链接分享
  • lyldj2012 lyldj2012 4年前

    明白了 又试了一下,在一个页面请求另外一个Controller 依旧是aaa/bbb/b1
    请求的时候路径改成../bbb/b1 就行了 感谢~

    点赞 评论 复制链接分享
  • shtku shtku 4年前

    ajax请求的方法前需要添加@ResponseBody
    RequestMapping("/b1")
    @ResponseBody
    public String test1(){
    return xxx;
    }
    @RequestMapping("/b2")
    public String test2(){
    retrun "index";
    }

    点赞 评论 复制链接分享

相关推荐