如何解决不支持请求方法'POST'?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决不支持请求方法'POST'?相关的知识,希望对你有一定的参考价值。

我想设计一个快速注册页面,当我提交字段时它放在页脚,它显示一些错误“请求方法POST不支持”。有人,请帮我解决这个错误。

我已将commandName形式的属性修改为modelAttribute,但仍然存在错误。

  1. 这是jsp的前端。
 <%@ tag body-content="empty" trimDirectiveWhitespaces="true"%>
    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
    <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <c:url value="/setSubscribe" var="subscribe"></c:url> 
    <form:form action="${subscribe}" method="post" modelAttribute="subscribeForm">
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
      <label class="form-check-label radio-inline"> 
          <input type="radio"  class="form-check-input" value="gender" name="gender"  value="Male"/> Male
      </label>
      <label class="form-check-label radio-inline"> 
          <input type="radio" class="form-check-input" value="gender" name="gender"  value="Female"/> Female
      </label>    
      <br></br>
      <div class="row">
          <div class="col-sm-3">
              <input  class="form-control" name="firstName"  placeholder="First Name"></input> 
          </div>
          <div class="col-sm-3">
              <input class="form-control" name="lastName" placeholder="Last Name"></input>
          </div>
          <div class="col-sm-3">
              <input class="form-control" name="email"  placeholder="Your Email Address"></input>
          </div>
          <div class="col-sm-3">
              <button type="submit" class="btn btn-primary">SUBSCRIBE</button>
          </div>
      </div>
    </form:form>
  1. 这是我的控制器。
@RequestMapping(value = "/setSubscribe", method = RequestMethod.POST)
  private String doSubscribe(@ModelAttribute("subscribeForm") final SubscribeForm form)
  {
      final RegisterData registerData = new RegisterData();
      registerData.setFirstName(form.getFirstName());
      registerData.setLastName(form.getLastName());
      registerData.setSex(form.getGender());
      registerData.setLogin(form.getEmail());

      final CerCustomerFacadeImpl customerFacadeImpl = new CerCustomerFacadeImpl();
      try
      {
          customerFacadeImpl.newCerRegister(registerData, true);
      }
      catch (final Exception e)
      {
          e.printStackTrace();
      }
      return "";
  }

它应该根据控制器中提到的业务行事。

答案

使用@ResponseBody注释编写控制器方法并使用@RequestMapping注释的属性,如下所示:

@RequestMapping(value = "/setSubscribe", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
private String doSubscribe(@ModelAttribute("subscribeForm") final SubscribeForm form)
  {
      return "";
  }

以上是关于如何解决不支持请求方法'POST'?的主要内容,如果未能解决你的问题,请参考以下文章

@ EnableOAuth2Sso时不支持请求方法'POST'

急!!php获取url参数

Postman 不支持请求方法“POST”

django 获取 POST 请求值的几种方法

Request method 'POST' not supported错误和解决方法

JQuery中的get和post怎么得到后台返回的值的