Spring boot AJAX POST 请求和来自用户界面的 knockout.js 调试错误

我有两个java models球员和球队。我有一个控制器类。当我从用户界面通过 ajax 发送发布请求时出现错误。我已经解决了类似的错误CORS。但是有一个错误我无法解决;knockout.js没有发生调试错误和发布请求。我的数据库没有变化。我共享了模型类、控制器类、html 和javascript文件。


我需要改变什么?你能帮忙吗?


播放器模型


@Entity

@Table(name = "player")

public class Player{


    @Id

    @GeneratedValue

    @NotNull

    @Column

    private int id;


    @NotNull

    @Column

    private String playerName;


    @NotNull

    @Column

    private String playerSurname;


    @Column

    private int playerAge;




    public String getPlayerName() {

        return playerName;

    }


    public void setPlayerName(String playerName) {

        this.playerName = playerName;

    }


    public String getPlayerSurname() {

        return playerSurname;

    }


    public void setPlayerSurname(String playerSurname) {

        this.playerSurname = playerSurname;

    }


    public int getId() {

        return id;

    }


    public void setId(int id) {

        this.id = id;

    }


    public int getPlayerAge() {

        return playerAge;

    }


    public void setPlayerAge(int playerAge) {

        this.playerAge = playerAge;

    }

}

团队模型


@Entity

@Table(name = "team")

public class Team {


    @Id

    @GeneratedValue

    @NotNull

    @Column

    private int id;


    @NotNull

    @Column

    private String teamName;


    @Column

    private String teamCountry;


    public Team(){

    }


    public int getId() {

        return id;

    }


    public void setId(int id) {

        this.id = id;

    }


    public String getTeamName() {

        return teamName;

    }


    public void setTeamName(String teamName) {

        this.teamName = teamName;

    }


    public String getTeamCountry() {

        return teamCountry;

    }


    public void setTeamCountry(String teamCountry) {

        this.teamCountry = teamCountry;

    }


    @ManyToOne

    private Player player;


    public Player getPlayer() {

        return player;

    }


    public void setPlayer(Player player) {

        this.player = player;

    }

}


万千封印
浏览 117回答 1
1回答

浮云间

回答你的问题,它没有做任何事情,因为你没有发送参数 Player (必须有效),因为你使用的是表单,这不是你应该这样做的方式。(请求参数通过 url 发送,你的表单应该通过 @RequestBody 发送)我会做这样的事情:在我的控制器上,由于我只能有一个@RequestBody,但是我的表单发送了一个包含多种类型对象数据的对象,我会做一个Dto是这样的:@PostMapping(value="/createNewTeam")    public Team createNewTeam(@Valid @RequestBody PayloadDto payloadDto) {        final Player player = new Player();        player.setPlayerName(payloadDto.playerName);        // fill player information        final Team team = new Team();        // fill team information...         playerRepository.save(player);        return teamRepository.save(team);    }您的 PayloadDto 对象必须包含您发送的所有属性。public class PayloadDto{  @JsonProperty("playerName")  public String playerName;  @JsonProperty("playerSurname")  public String playerSurname;  // .. more player and team properties }确保 jsonProperty("propertyName) 与您在发送信息时使用的名称相同
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java