Il semble y avoir un problème avec le passage du paramètre playerId du frontend au backend dans une application React. La fonction createGame dans le contrôleur Spring est configurée pour recevoir le paramètre playerId, mais la valeur n'est pas transmise correctement depuis le frontend à l'aide de Axios. J'ai essayé d'utiliser long et string comme playerId mais le problème persiste. J'ai toujours le statut 400 !
Printemps
Réaction
Dans la capture d'écran de réaction partagée, il semble que vous envoyez un corps json.
Mais, dans le contrôleur Spring, utilisez @requestparam.
On dirait que vous devez soit modifier la partie de réaction pour appeler une URL comme '/api/games/{playerid}' (pour que l'ID du joueur soit transmis dans le cadre de l'URL), soit mettre à jour le contrôleur Spring pour accepter @requestbody (et créez une URL avec une classe avec le champ "playerid") - afin que l'objet entier puisse être transmis en tant que corps de la requête.
Actuellement, React envoie un corps - mais Spring recherche les paramètres de requête d'URL. Les deux parties doivent faire la même chose, quelle qu’elle soit.
Les changements apportés àspring sont les suivants :
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; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!