我尝试@RequestMapping(value = "/test", method = RequestMethod.POST)
,但出现错误
代码为
@Controller
public class HelloWordController {
private Logger logger = LoggerFactory.getLogger(HelloWordController.class);
@RequestMapping(value = "/test", method = RequestMethod.POST)
public String welcome() {
logger.info("Spring params is welcome");
return "/WEB-INF/jsp/welcome";
}
}
web.xml是
<servlet>
<description>This is Spring MVC DispatcherServlet</description>
<servlet-name>SpringMVC DispatchServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>SpringContext</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<servlet-mapping>
<servlet-name>SpringMVC DispatchServlet</servlet-name>
<url-pattern>/</url-pattern>
并且springmvc.xml是
index.jsp是
<form action="<%=request.getContextPath() %>/test" method="post">
<input type="submit" value="submit">
</form>
我输入提交按钮浏览器错误
HTTP状态405-请求方法'GET'不支持状态报告类型
不支持消息请求方法'GET'
说明指定的HTTP方法不允许用于请求的资源(不支持请求方法'GET')。
9条答案
按热度按时间efzxgjgh1#
对我来说,问题是我忘记在我的 Postman 请求中给baseUrl添加一个协议,在我添加了“https://"之后,它就像一个护身符一样工作了。
djp7away2#
你在使用Angular吗?我也遇到过同样的问题,这是因为我在使用subscribe时,他们改变了他们的实现(这种弃用是在RxJS 6.4中引入的)。
从"rxjs"导入{of};
// recommended of([1,2,3]).subscribe((v) => console.info(v));
y4ekin9u3#
我也遇到了同样的问题,我把它改成了下面的,效果很好。
java :
HTML代码:
默认情况下,如果您没有在表单中指定http方法,它将使用GET。要使用POST方法,您需要特别声明它。
希望这个有用。
wr98u20j4#
如果您使用的是浏览器,它默认总是在get上工作,您可以使用postman工具,否则您可以将其更改为getmapping。希望这将工作
lxkprmvk5#
我解决这个错误的方法是将json数据包含到postman body部分,然后点击postmapping url
x33g5p2x6#
method = POST
将工作,如果你'post'一个表单到url /test.如果您在浏览器地址栏中键入一个url并按Enter键,它始终是一个
GET
请求,因此您必须指定POST请求。Google for
HTTP GET
和HTTP POST
(还有其他几个类似PUT DELETE的)。它们都有自己的含义。3b6akqbq7#
变更
至
dy1byipe8#
显然,一些POST请求看起来像是对服务器的“GET”(如Heroku...)
所以我用了这个策略,它对我很有效:
wlzqhblo9#
我通过在控制器中包含get和post请求解决了这个错误:方法={请求方法.POST,请求方法.GET}