【问题标题】:The request sent by the client was syntactically incorrect?客户端发送的请求语法不正确?
【发布时间】:2013-02-05 10:56:36
【问题描述】:

我有一个如下的控制器

@Controller
public class SettingsController {
   @RequestMapping(value="/editname",method=RequestMethod.POST)
   public void editName(@RequestParam(value="firstname") String firstname,
                        @RequestParam(value="lastname") String lastname) {
      final Object principal = 
         SecurityContextHolder.getContext().getAuthentication().getPrincipal();
      try {
         jdbcPersonRepository.updateName(principal.toString(), firstname, lastname);
      } catch (SignInNotFoundException e) {
      }
    }
 }

我已经提交了我的 ajax 表单。

 $(function() {
  //twitter bootstrap script
    $("button#submit").click(function(){
    var $form = $(this).closest("form");
    var type = $form.attr('method');
    $.ajax({
      type: $form.attr('method'),
      url: $form.attr('action'),
      data: $form.serialize(),
      dataType : "json",
        success: function(msg){
                $("#thanks").html(msg)
               $("#form-content").modal('hide');    
        },
        error: function(){
           //alert("failure");
        }
      });
});
});

我的 twitter bootstrap 模型有一个触发 ajax 的表单如下

  <!-- Name Edit div -->
<div id="form-content" class="modal hide fade in" tabindex="-1">
  <form name="edit-form" action="<c:url value="/editname" />" method="post">
    <div class="modal-header">
      <h4>Edit Name</h4>
    </div>
    <div class="modal-body">
     <div class="control-group">
        <div class="controls">
          <ul class="nav nav-list">
            <li class="nav-header">First Name</li>
            <li><input type="text" placeholder="First Name" name="firstName" id="firstName" class="input-xlarge help-inline"></li>
            <li class="nav-header">Last Name</li>
            <li><input type="text" placeholder="Last Name" name="lastName" id="lastName" class="input-xlarge help-inline"></li>
         </ul>
        </div>
      </div>
    </div>
    <div class="modal-footer">
       <button id="submit"  class="btn btn-success">Update</button>
       <button class="btn" data-dismiss="modal" >Close</button>
    </div>
  </form>
</div>

有没有人知道这个错误的线索。 ?

【问题讨论】:

    标签: spring jquery spring-mvc


    【解决方案1】:

    在方法声明中,@RequestMapping 注释将参数名称指定为firstnamelastname。在 HTML 表单中,它们是 firstNamelastName

    请求参数名称区分大小写...因此,它们不匹配,Spring 告诉您这是一个无效请求,因为缺少强制参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 2015-12-22
      • 2013-03-21
      • 1970-01-01
      • 2019-02-20
      相关资源
      最近更新 更多