休息控制器工作,但ajax post方法返回错误

时间:2019-09-23 04:01:37

标签: java jquery ajax spring-mvc spring-restcontroller

我正在使用$.ajax来完成发布方法

$(function(){

     $("#postMembers").click(function(){
            let member ={
                firstName: "khookina",
                lastName : "khooak",
                age:1,
                sex:"female",
                duty:"undefined",
                dailyJeton:2
            }

            $.ajax({
                type: "post",
                url: "http://localhost:8080/RCP2/members",
                data: member,
                dataType: "application/json",
                success: function (response) {
                    alert("success");
                },
                error: function(error){
                    alert("error");


                }
            });


        }); 

我的休息控制器是这个

@PostMapping(consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}, produces = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public String createMembers(Member member) {
    if (member.hasError()) {
        throw new CreatePersonException("All the fields must be filled properly in order to create a new member.");
    }

    if (personDao.createMember(member)) {
        return "Member: " + member.getFirstName() + " " + member.getLastName() + " successfully created.";
    }

    return "couldn't create member, please try again later.";

}

我在网页上有一个执行此ajax post方法的创建成员按钮,当我按该按钮时,一切正常,成员信息发送到rest控制器,它被创建(100%工作)并返回{{ ajax post方法的1}}和{"readyState":4 status":200, "statusText":"parsererror"}被调用

出什么问题了?

这是我使用Ajax和javascript的第一天,我不太了解发生了什么。

预先感谢

PS我曾尝试更改数据类型error: function(error)text json和其他类似问题中提出的建议,但是它们对我没有用,所以我决定自己提出一个问题

2 个答案:

答案 0 :(得分:2)

尝试更改

数据:JSON.stringify(member),您将在结果中获得成功的响应/

答案 1 :(得分:0)

从ajax请求中删除数据类型,它可以工作。

删除此内容。

dataType: "application/json"

有关详细信息,请参见this