PHP पर कोणीय HTTP पोस्ट: अपरिभाषित पोस्ट मानों से निपटना
AngularJS में, PHP एंडपॉइंट पर HTTP POST अनुरोध निष्पादित करने से कभी-कभी अपरिभाषित परिणाम हो सकते हैं सर्वर साइड पर POST मान. यह तब हो सकता है जब अपेक्षित डेटा प्रारूप और एंगुलर एप्लिकेशन द्वारा भेजे गए वास्तविक डेटा के बीच कोई मेल नहीं है।
इस समस्या को हल करने के लिए, यह सुनिश्चित करना महत्वपूर्ण है कि सामग्री-प्रकार हेडर उचित रूप से सेट किया गया है। डिफ़ॉल्ट रूप से, AngularJS इस हेडर को "एप्लिकेशन/json" पर सेट करता है। हालाँकि, यदि आप फॉर्म-एन्कोडेड डेटा भेज रहे हैं, तो इसे ओवरराइड करने की आवश्यकता है।
प्रदान किए गए कोड में, निम्न पंक्ति सामग्री-प्रकार हेडर को "एप्लिकेशन/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 कार्यक्षमता का उपयोग करना पसंद करते हैं, तो आप डिफ़ॉल्ट हेडर सेटिंग रख सकते हैं और संशोधित कर सकते हैं अनुरोध निकाय से कच्चे इनपुट को पढ़ने और JSON को डिकोड करने के लिए PHP कोड। इसे निम्नलिखित कोड से प्राप्त किया जा सकता है:
$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