springboot2.x中不支持delete请求的解决方案2019-12-10

对于restful的支持,springboot2.x支持get和post、put请求,但是对于delete请求并不支持。

在使用的时候,会出现405异常。异常如下:

Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Tue Dec 10 14:14:52 CST 2019There was an unexpected error (type=Method Not Allowed, status=405).Request method 'POST' not supported

问题出现的原因是因为默认的情况下springboot2.x没有启用HiddenHttpMethodFilter过滤器;

在WebMVCAutoConfiguration中的源码如下:

@Bean

@ConditionalOnMissingBean(HiddenHttpMethodFilter.class)

@ConditionalOnProperty(prefix ="spring.mvc.hiddenmethod.filter", name ="enabled", matchIfMissing =false)

public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {

return new OrderedHiddenHttpMethodFilter();

}

从中我们可以看到spring.mvc.hiddenmethod.filter.enabled的值在缺省的情况下默认为false;

也就是说HiddenHttpMethodFilter默认没有开启。

解决方案:

在application.properties中配置:

spring.mvc.hiddenmethod.filter.enabled=true


问题解决。

你可能感兴趣的:(springboot2.x中不支持delete请求的解决方案2019-12-10)