Angular HTTP POST إلى PHP: التعامل مع قيم POST غير المحددة
في AngularJS، قد يؤدي تنفيذ طلبات HTTP POST إلى نقاط نهاية PHP أحيانًا إلى غير محدد قيم POST على جانب الخادم. يمكن أن يحدث هذا عندما يكون هناك عدم تطابق بين تنسيق البيانات المتوقع والبيانات الفعلية المرسلة بواسطة تطبيق Angular.
لحل هذه المشكلة، من الضروري التأكد من تعيين رأس نوع المحتوى بشكل مناسب. افتراضيًا، تقوم AngularJS بتعيين هذا الرأس على "application/json". ومع ذلك، إذا كنت ترسل بيانات مشفرة بالنموذج، فيجب تجاوز ذلك.
في الكود المقدم، يقوم السطر التالي بتعيين رأس نوع المحتوى على "application/x-www-form-urlencoded; charset=UTF-8":
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
ومع ذلك، يتطلب هذا تعديل البيانات المرسلة لتتوافق مع التنسيق المشفر بالنموذج. بدلاً من إرسال البيانات ككائن، يجب تحويلها إلى سلسلة استعلام. يمكن القيام بذلك عن طريق استخدام jQuery.serialize() أو إنشاء سلسلة الاستعلام يدويًا باستخدام encodeURIComponent().
بدلاً من ذلك، إذا كنت تفضل استخدام وظيفة PHP $_POST، فيمكنك الاحتفاظ بإعداد الرأس الافتراضي وتعديل كود PHP لقراءة المدخلات الأولية من نص الطلب وفك تشفير JSON. يمكن تحقيق ذلك باستخدام الكود التالي:
$postdata = file_get_contents("php://input"); $request = json_decode($postdata); $email = $request->email; $pass = $request->password;
من خلال محاذاة تنسيق البيانات وإعدادات الرأس، يمكنك التأكد من استلام قيم POST بشكل صحيح على جانب PHP.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3