首頁  >  文章  >  後端開發  >  向 Spring 端點傳送 POST,給予狀態 400

向 Spring 端點傳送 POST,給予狀態 400

王林
王林轉載
2024-02-13 16:10:06795瀏覽

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

問題內容

在 React 應用程式中,將 playerId 參數從前端傳遞到後端似乎有問題。 Spring控制器中的createGame函數設定為接收playerId參數,但該值未使用Axios從前端正確傳遞。已嘗試使用長整型和字串作為playerId,但問題仍然存在。 仍然獲得狀態 400!

春天

反應

  1. 將其儲存為字串參數。
  2. 我使用了@PathVariable。
  3. 我嘗試直接在Postman中寫入參數。
  4. 我嘗試更改端點。
  5. 我沒有展示的另一個端點(/login)運作良好,因此代理沒有問題。

解決方法

在共享的 react 螢幕截圖中 - 看起來您發送了一個 json 正文。

但是,在 spring controller 中 - 使用@requestparam。

看起來您要么需要更改react部分來調用像'/api/games/{playerid}'這樣的url(這樣playerid將作為url的一部分傳遞),要么更新spring控制器以接受@requestbody(並創建一個帶有字段“playerid”的類別) - 因此整個物件可以作為請求主體傳遞。

目前 react 發送了一個正文 - 但 spring 正在尋找 url 查詢參數。兩個部分都需要做同樣的事情 - 無論它是什麼。

spring 的變化如下所示:

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;
    }
}

以上是向 Spring 端點傳送 POST,給予狀態 400的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除