Rumah  >  Artikel  >  Java  >  Mengapa saya mendapat Ralat 406 (Tidak Boleh Diterima) Semasa Menghantar Permintaan JSON kepada Pengawal MVC Spring Saya?

Mengapa saya mendapat Ralat 406 (Tidak Boleh Diterima) Semasa Menghantar Permintaan JSON kepada Pengawal MVC Spring Saya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 10:28:26115semak imbas

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

Spring JSON Request Returning 406 (Not Acceptable)

Apabila cuba menghantar permintaan JSON kepada pengawal Spring MVC, sesetengah pengguna menghadapi masalah Ralat "406 Tidak Boleh Diterima". Isu ini berpunca daripada ketidakpadanan antara jenis kandungan yang diminta ("application/json") dan keupayaan tindak balas pengawal.

Dalam Spring MVC, kaedah pengawal dianotasi dengan "@ResponseBody" untuk menunjukkan bahawa nilai pulangan hendaklah ditulis pada badan respons HTTP sebagai JSON. Walau bagaimanapun, jika HTTPMessageConverter yang betul tidak didaftarkan dalam konteks aplikasi, Spring tidak akan dapat menukar nilai pulangan kepada format yang diminta.

Punca biasa ralat ini ialah ketiadaan perpustakaan Jackson dalam aplikasi laluan kelas. Perpustakaan Jackson menyediakan HTTPMessageConverter yang bertanggungjawab untuk menukar objek Java kepada JSON dan sebaliknya.

Untuk menyelesaikan isu ini, ikut langkah berikut:

  1. Pastikan perpustakaan Jackson berikut disertakan dalam laluan kelas aplikasi:

    • jackson-core-asl.jar
    • jackson-mapper-asl.jar
  2. Jika anda menggunakan Spring 3.0 atau lebih baru, tambahkan baris berikut pada fail konfigurasi spring-servlet.xml untuk mendayakan konfigurasi MVC dipacu anotasi:

    <code class="xml"><mvc:annotation-driven /></code>
  3. Alih keluar "headers=" yang tidak diperlukan Terima=/"" arahan daripada anotasi kaedah pengawal. Arahan ini memaksa Spring menerima sebarang pengepala dan boleh membawa kepada isu keserasian.

Dengan melaksanakan langkah-langkah ini, HTTPMessageConverter akan didaftarkan dan Spring akan dapat menukar nilai pulangan pengawal kepada JSON seperti yang dijangkakan .

Atas ialah kandungan terperinci Mengapa saya mendapat Ralat 406 (Tidak Boleh Diterima) Semasa Menghantar Permintaan JSON kepada Pengawal MVC Spring Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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