Senden Sie POST an den Spring-Endpunkt und geben Sie den Status 400 an

王林
Freigeben: 2024-02-13 16:10:06
nach vorne
835 Leute haben es durchsucht

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

Inhalt der Frage

Es scheint ein Problem bei der Übergabe des Parameters playerId vom Frontend an das Backend in einer React-Anwendung zu geben. Die Funktion „createGame“ im Spring-Controller ist für den Empfang des Parameters „playerId“ eingerichtet, der Wert wird jedoch vom Frontend mit Axios nicht korrekt übergeben. Habe versucht, long und string als Spieler-ID zu verwenden, aber das Problem besteht weiterhin. Habe immer noch Status 400!

Frühling

Reaktion

  1. Speichern Sie es als String-Parameter.
  2. Ich habe @PathVariable verwendet.
  3. Ich habe versucht, die Parameter direkt in Postman zu schreiben.
  4. Ich habe versucht, den Endpunkt zu ändern.
  5. Der andere Endpunkt, den ich nicht angezeigt habe (/login), funktioniert einwandfrei, es gibt also keine Probleme mit dem Proxy.

Problemumgehung

Im geteilten Reaktions-Screenshot sieht es so aus, als würden Sie einen JSON-Text senden.

Aber im Frühjahrscontroller verwenden Sie @requestparam.

Sieht so aus, als müssten Sie entweder den Reaktionsteil ändern, um eine URL wie „/api/games/{playerid}“ aufzurufen (damit die Spieler-ID als Teil der URL übergeben wird) oder den Spring-Controller aktualisieren, um @requestbody zu akzeptieren (und Erstellen Sie eine URL mit der Klasse mit dem Feld „playerid“), damit das gesamte Objekt als Anforderungstext übergeben werden kann.

Derzeit sendet React einen Text – aber Spring sucht nach URL-Abfrageparametern. Beide Teile müssen dasselbe tun – was auch immer es ist.

Die Änderungen an

Frühling sind wie folgt:

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;
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSenden Sie POST an den Spring-Endpunkt und geben Sie den Status 400 an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!