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

Hantar POST ke titik akhir Spring memberi status 400

王林
Lepaskan: 2024-02-13 16:10:06
ke hadapan
874 orang telah melayarinya

向 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;
    }
}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan