」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼在向 Spring MVC 控制器發送 JSON 請求時收到 406(不可接受)錯誤?

為什麼在向 Spring MVC 控制器發送 JSON 請求時收到 406(不可接受)錯誤?

發佈於2024-11-07
瀏覽:789

Why am I getting a 406 (Not Acceptable) Error When Sending a JSON Request to My Spring MVC Controller?

Spring JSON 請求返回406(不可接受)

當嘗試向Spring MVC 控制器發送JSON 請求時,一些用戶遇到“ 406 不可接受」錯誤。此問題源自於請求的內容類型(“application/json”)與控制器的回應能力不符。

在 Spring MVC 中,控制器方法以「@ResponseBody」註解表示傳回值應以 JSON 形式寫入 HTTP 回應正文。但是,如果沒有在應用程式上下文中註冊正確的 HTTPMessageConverter,Spring 將無法將回傳值轉換為請求的格式。

此錯誤的常見原因是應用程式中缺少 Jackson 庫類別路徑。 Jackson 函式庫提供了 HTTPMessageConverter 負責將 Java 物件轉換為 JSON,反之亦然。

要解決此問題,請按照下列步驟操作:

  1. 確保以下Jackson 庫包含在應用程式中classpath:

    • jackson -core-asl.jar
    • jackson-mapper-asl.jar
  2. 如果您使用Spring 3.0或更高版本,請將下列行新增至spring -servlet.xml 設定檔中以啟用註解驅動的MVC設定:

  3. 從中刪除不必要的"headers=\ "Accept=/\"" 指令控制器方法註解。該指令強制 Spring 接受任何標頭,並可能導致相容性問題。

透過實現這些步驟,HTTPMessageConverter 將被註冊,Spring 將能夠按預期將控制器的返回值轉換為 JSON .

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3