Nampaknya terdapat masalah dengan menghantar parameter playerId dari bahagian hadapan ke bahagian belakang dalam aplikasi React. Fungsi createGame dalam pengawal Spring disediakan untuk menerima parameter playerId, tetapi nilai tidak dihantar dengan betul dari bahagian hadapan menggunakan Axios. Cuba menggunakan panjang dan bertali sebagai playerId tetapi masalah berterusan. Masih mendapat status 400!
Musim bunga
Reaksi
Dalam tangkapan skrin reaksi yang dikongsi - nampaknya anda sedang menghantar badan json.
Tetapi, dalam pengawal musim bunga - gunakan @requestparam.
Nampaknya anda sama ada perlu menukar bahagian tindak balas untuk memanggil url seperti '/api/games/{playerid}' (jadi playerid akan diluluskan sebagai sebahagian daripada url) atau mengemas kini pengawal spring untuk menerima @requestbody (dan buat url dengan kelas dengan medan "playerid") - jadi keseluruhan objek boleh dihantar sebagai badan permintaan.
Pada masa ini bertindak balas menghantar badan - tetapi spring sedang mencari parameter pertanyaan url. Kedua-dua bahagian perlu melakukan perkara yang sama - apa pun.
Perubahan kepadaspring adalah seperti berikut:
public ResponseEntity<String> createGame(@RequestBody PlayerRequest playerRequest) { Long playerId = playerRequest.getPlayerId(); // other code goes here } public class PlayerRequest { private Long playerId; public Long getPlayerId() { return playerId; } public void setPlayerId(Long playerId) { this.playerId = playerId; } }
Atas ialah kandungan terperinci Hantar POST ke titik akhir Spring memberi status 400. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!