AngularJS发布数据说“客户端发送的请求在语法上是不正确的”

时间:2015-10-23 16:38:07

标签: ajax angularjs spring spring-mvc

有角度的职位要求

                $http({
                      method: 'POST',
                      url: '/Eatery/save',
                      contentType:'application/json',
                      dataType:'json',
                      data:JSON.stringify(resvnCtrl.user)
                });

预订模式

@Entity
@Table(name="reservations")
public class Reservation implements Serializable{

    /**
     * 
     */
    private static final long serialVersionUID = -2657656545798031761L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String cnf;
    private String name;
    private String email;
    private String phone;

    @Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
    private LocalDateTime time;
    private int seats;
    private String note;

    public Reservation() { }

    public Reservation(String cnf, String name, String email, String phone,
            LocalDateTime time, int seats, String note) {
        this.cnf = cnf;
        this.name = name;
        this.email = email;
        this.phone = phone;
        this.time = time;
        this.seats = seats;
        this.note = note;
    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCnf() {
        return cnf;
    }

    public void setCnf(String cnf) {
        this.cnf = cnf;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    @JsonSerialize(using=CustomDateSerializer.class)
    public LocalDateTime getTime() {
        return time;
    }

    public void setTime(LocalDateTime time) {
        this.time = time;
    }

    public int getSeats() {
        return seats;
    }

    public void setSeats(int seats) {
        this.seats = seats;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

}

Spring Controller

@RequestMapping(value="/save",method=RequestMethod.POST,consumes=MediaType.APPLICATION_JSON_VALUE,produces=MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public int save(@RequestBody Reservation reservation) {
        System.out.println(reservation.getTime());
        return reservationRepo.save(reservation);   
    }

我有一个发送JSON数据的角度发布请求和一个处理该请求的spring控制器。当我尝试这个时我收到错误客户端发送的请求在语法上是不正确的。前端的数据来自表格。我正在使用引导日期选择器来选择日期。 有人可以发现我的错误

1 个答案:

答案 0 :(得分:1)

无需对数据对象进行字符串化。

            $http({
                  method: 'POST',
                  url: '/Eatery/save',
                  contentType:'application/json',
                  dataType:'json',
                  data:resvnCtrl.user
            });