"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا أتلقى خطأ 406 (غير مقبول) عند إرسال طلب JSON إلى وحدة تحكم SpringMVC الخاصة بي؟

لماذا أتلقى خطأ 406 (غير مقبول) عند إرسال طلب JSON إلى وحدة تحكم SpringMVC الخاصة بي؟

تم النشر بتاريخ 2024-11-07
تصفح:163

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

إرجاع طلب Spring JSON 406 (غير مقبول)

عند محاولة إرسال طلب JSON إلى وحدة تحكم Spring MVC، يواجه بعض المستخدمين مشكلة خطأ "406 غير مقبول". تنبع هذه المشكلة من عدم التطابق بين نوع المحتوى المطلوب ("application/json") وقدرة الاستجابة لوحدة التحكم.

في Spring MVC، يتم وضع تعليقات توضيحية على طريقة وحدة التحكم بـ "@ResponseBody" للإشارة إلى أن يجب كتابة قيمة الإرجاع إلى نص استجابة HTTP كـ JSON. ومع ذلك، إذا لم يتم تسجيل HTTPMessageConverter المناسب في سياق التطبيق، فلن يتمكن Spring من تحويل قيمة الإرجاع إلى التنسيق المطلوب.

السبب الشائع لهذا الخطأ هو عدم وجود مكتبات Jackson في التطبيق com.classpath. توفر مكتبات جاكسون برنامج HTTPMessageConverter المسؤول عن تحويل كائنات Java إلى JSON والعكس.

لحل المشكلة، اتبع الخطوات التالية:

  1. تأكد من أن مكتبات جاكسون التالية تم تضمينها في مسار فئة التطبيق:

    • 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