Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从3.2迁移到4.1后,Spring MVC中的POST请求不起作用_Java_Spring_Spring Mvc - Fatal编程技术网

Java 从3.2迁移到4.1后,Spring MVC中的POST请求不起作用

Java 从3.2迁移到4.1后,Spring MVC中的POST请求不起作用,java,spring,spring-mvc,Java,Spring,Spring Mvc,我发出邮寄请求 $.ajax({ type: "POST", url: "/common/ajax/advert/", data: data, dataType: "json", contentType: "application/json", success: function(r){} }); 到控制器 @Controll

我发出邮寄请求

$.ajax({         
            type: "POST",  
            url: "/common/ajax/advert/",  
            data: data,
            dataType: "json",
            contentType: "application/json",
            success: function(r){}
});
到控制器

@Controller
@RequestMapping(value = "/common/ajax/advert")
public class Controller {

    @RequestMapping(value="/", method=RequestMethod.POST)
    @ResponseBody
    public  Map<String,Object> adsSearch(@RequestBody Map<String,Object> data){

        Map<String,Object> result = new HashMap<String,Object>();
        List<Advert> ads =  advSrv.getAds(data);

        result.put("obj", ads);
        return result;
}
@控制器
@请求映射(value=“/common/ajax/advert”)
公共类控制器{
@RequestMapping(value=“/”,method=RequestMethod.POST)
@应答器
公共地图搜索(@RequestBody地图数据){
映射结果=新的HashMap();
列表ads=advSrv.getAds(数据);
结果.投入(“obj”,ads);
返回结果;
}
并返回404错误,但在Spring3.2中,此工作正常

具有RequestMethod.GET的控制器在旧版本和新版本中工作正常

请帮我修一下

我试图用RequestMethod.POST创建一个@RestController类(Spring4.1),但它也不起作用


log Spring中的UPD.2正确映射了此方法,但未处理post请求(与get请求不同,它们工作正常)。

最后我发现了一个问题-升级到4.0后是Spring安全,默认情况下启用了csrf保护:

DEBUG: org.springframework.security.web.csrf.CsrfFilter - Invalid CSRF token found for post-request

我添加了支持csrf保护,所有功能都正常工作。

请在这里检查我的答案,我有相同的问题,并用这种方法解决。不幸的是,它没有帮助。Post请求仍然返回404错误当您提供
映射时,Jackson应该如何知道映射到哪个对象类型?在Spring 3.2中,Jackson可以使用
@Re正常工作sponseBody Map
@Stephen1832如果您得到404,则表示找不到页面,页面重定向或其他方面存在问题。您应该调试您的ResponseBody是否为空(之前可以),然后添加messageConvertor并续订jackson库。