Ajax请求始终映射到root

时间:2015-06-09 13:05:59

标签: java ajax spring spring-mvc spring-security

即使在指定“/ ajax / file / upload”之类的完整路径后,我的ajax请求也始终映射到“/”

在我的控制器中,我有以下两种方法

@RequestMapping(value = "/")
public ModelAndView getView() {
}

@RequestMapping(value = "/ajax/file/upload", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String readFile(File file) {
}

在客户端,当我实例化像“ajax / file / upload”这样的ajax请求时,请求已被重定向到方法“getView”而不是“readFile”。

我认为,这是因为请求映射“/”也匹配模式“ajax / file / upload”但不确定。如果是这样的话,如何区分两个映射?

1 个答案:

答案 0 :(得分:0)

  

我认为,这是因为请求映射" /"也匹配   模式" ajax / file / upload"

Spring将始终使用最佳匹配来决定哪种方法应该处理请求。

可能会发生一些事情:

  • 如果在客户端发送GET请求而不是POST请求,则最佳匹配是" /"因为" / ajax / file / upload"只接受POST请求。您可以在浏览器网络活动中对其进行调试,以检查请求/响应的详细信息
  • 如果您已实施安全措施,则需要检查您的ajax请求是否正在发送正确的Cookie /身份验证令牌

另一件可能值得检查的事情是,如果你的ajax请求发送标题"接受:application / json"或"接受: / "