Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Hantar POST ke titik akhir Spring memberi status 400

Hantar POST ke titik akhir Spring memberi status 400

王林
王林ke hadapan
2024-02-13 16:10:06842semak imbas

向 Spring 端点发送 POST,给出状态 400

Kandungan soalan

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

  1. Simpannya sebagai parameter rentetan.
  2. Saya menggunakan @PathVariable.
  3. Saya cuba menulis parameter terus dalam Posmen.
  4. Saya cuba menukar titik akhir.
  5. Titik akhir lain yang saya tidak tunjukkan (/log masuk) berfungsi dengan baik, jadi tiada masalah dengan proksi.

Penyelesaian

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 kepada

spring 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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam