Alhassan Ibrahym نشر 4 يوليو 2023 أرسل تقرير نشر 4 يوليو 2023 The GET method is not supported for route posts. Supported methods: POST. 2 اقتباس
0 سمير عبود نشر 4 يوليو 2023 أرسل تقرير نشر 4 يوليو 2023 سؤالك غير واضح، يٌرجى إعطاء تفاصيل أكثر حتى يستطيع المدربين هنا مساعدتك، و إن كان سؤالك متعلق بدورة من الدورات يُرجى طرحه أسفل الدرس الذي تواجه فيه المشكلة. مبدئياً من خلال رسالة الخطأ التي أرفقتها يتضح لي أنك تستعمل إطار Laravel و رسالة الخطأ توضح لك أن المسار: /posts لا يمكن الوصول له عبر الطريقة GET و إنما POST، تأكد أنك قد أنشأت هذا المسار بالطريقة get في الملف الخاص بـ routes أو أنك قد أنشأته بشكل مغاير مثلاً post/ في هذه الحالة تأكد أن عملية إعادة توجيه المستخدم بعد إضافة البيانات تتم نحو المسار الصحيح. اقتباس
0 Mustafa Suleiman نشر 4 يوليو 2023 أرسل تقرير نشر 4 يوليو 2023 الخطأ يعني طريقة GET لا تدعم عملية الإرسال (POST) ولن تستطيع استخدام GET لإضافة عناصر جديدة إلى قاعدة البيانات، بل يتم استخدام طريقة POST بدلاً من ذلك. ومثلاً إذا كنت تستخدم لغة جافاسكريبت فإليك مثال بالإعتماد على مكتبة axios لإرسال طلب إضافة: // استيراد المكتبة اللازمة لإجراء طلبات الشبكة import axios from 'axios'; // بيانات العنصر الجديد الذي سيتم إضافته إلى قاعدة البيانات const newItem = { name: 'اسم العنصر', description: 'وصف العنصر' }; // إجراء طلب POST لإضافة العنصر إلى قاعدة البيانات axios.post('رابط الخادم/المسار', newItem) .then(response => { console.log('تمت إضافة العنصر بنجاح!', response.data); }) .catch(error => { console.error('حدث خطأ أثناء إضافة العنصر:', error); }); وإذا كنت تستخدم لغة PHP فإليك مثال: <?php // بيانات العنصر الجديد الذي سيتم إضافته إلى قاعدة البيانات $newItem = array( 'name' => 'اسم العنصر', 'description' => 'وصف العنصر' ); // معلومات الاتصال بقاعدة البيانات $servername = 'اسم خادم قاعدة البيانات'; $username = 'اسم مستخدم قاعدة البيانات'; $password = 'كلمة مرور قاعدة البيانات'; $dbname = 'اسم قاعدة البيانات'; // إنشاء اتصال بقاعدة البيانات $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من نجاح الاتصال if ($conn->connect_error) { die('فشل الاتصال بقاعدة البيانات: ' . $conn->connect_error); } // استعلام SQL لإضافة العنصر إلى قاعدة البيانات $sql = "INSERT INTO اسم_جدول_قاعدة_البيانات (اسم_العمود_1, اسم_العمود_2) VALUES ('" . $newItem['name'] . "', '" . $newItem['description'] . "')"; // تنفيذ الاستعلام والتحقق من نجاحه if ($conn->query($sql) === TRUE) { echo 'تمت إضافة العنصر بنجاح!'; } else { echo 'حدث خطأ أثناء إضافة العنصر: ' . $conn->error; } // إغلاق الاتصال بقاعدة البيانات $conn->close(); ?> وبالطبع عليك استبدال "اسم_خادم_قاعدة_البيانات" و "اسم_مستخدم_قاعدة_البيانات" و "كلمة_مرور_قاعدة_البيانات" و "اسم_قاعدة_البيانات" و "اسم_جدول_قاعدة_البيانات" و "اسم_العمود_1" و "اسم_العمود_2" بالقيم المناسبة وفقًا لبيئة قاعدة البيانات لديك، وأيضًا تعديل الاستعلام SQL وفقًا لهيكل جدول قاعدة البيانات. اقتباس
0 عبدالباسط ابراهيم نشر 4 يوليو 2023 أرسل تقرير نشر 4 يوليو 2023 لا يمكن تحديد الخطأ بالضبط بدون المزيد من التفاصيل ولكن السبب عموماً بسبب استخدام GET يتم استخدام طريقة GET عادةً لاسترداد بيانات من المورد المحدد، ولا يتم تغيير أو تعديل المورد. يرسل المتصفح طلب GET إلى الخادم لاسترداد المورد، ويتم عادةً عرض المورد على الصفحة. ومع ذلك، يتم استخدام طريقة POST عادةً عندما يتم إرسال بيانات إلى المورد المحدد، ويمكن استخدامها لإضافة بيانات جديدة، أو تعديل بيانات موجودة، أو حذف بيانات. عند استخدام نموذج HTML لإرسال البيانات إلى الخادم، يتم تحديد الطريقة المستخدمة في النموذج باستخدام العنصر "method" في عنصر النموذج "form"، ويتم تعيين قيمة هذا العنصر إلى "POST" عندما تحتاج إلى إرسال البيانات إلى الخادم باستخدام طريقة POST. في حالة الخطأ "The GET method is not supported for route posts. Supported methods: POST."، يشير هذا إلى أن الطريقة التي تم استخدامها للوصول إلى مسار "posts" هي GET، والتي لا تدعمها الخادم. لحل هذه المشكلة، يجب تحديد الطريقة المستخدمة في النموذج إلى POST، أو التحقق من الكود الخاص بمسار "posts" على الخادم والتأكد من دعمه لطريقة POST. بمجرد استخدام الطريقة الصحيحة، يجب أن تتمكن من إضافة العناصر إلى قاعدة البيانات بنجاح والعرض بشكل صحيح على الصفحة. اقتباس
0 Adnane Kadri نشر 5 يوليو 2023 أرسل تقرير نشر 5 يوليو 2023 مشكلتك غير واضحة فهي مشكلة عامة، ولكن يرجح أن الخطأ خاص باستهداف مسار POST باستخدام GET باطار عمل لارافيل. يحدث مثل هذا عادة عند نسيان تصريح الخاصية method بالنسبة لعنصر form معين تحاول تقديمه. فيأخذ ذلك السلوك الافتراضي وهو اعتماد GET كطريقة للطلب. ابحث عن عنصر form المرافق وقم باسناد قيمة POST لهاته الخاصية method: <form method="POST" قد يكون أيضا من الضروري تصريح حقل يحدد نوع الطلبية: طريقة أولى: @method('POST') طريقة ثانية: input type="hidden" name="_method" value="POST"> وطبعا لا تنسى حقل csrf لطلبيات POST: @csrf اقتباس
السؤال
Alhassan Ibrahym
The GET method is not supported for route posts. Supported methods: POST.
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.