दिलचस्प पोस्ट
क्रोम में स्थानीय फाइलों का उपयोग कर jQuery getJSON के साथ समस्याएं जावा एप्लिकेशन को पुनरारंभ कैसे कर सकता हूं? दो दशमलव से दो दशमलव स्थानों को गोल करें सूरज क्यों होता है। Mesc.Unsafe अस्तित्व में है, और इसे वास्तविक दुनिया में कैसे इस्तेमाल किया जा सकता है? अगर jquery लोड किया गया है, तो यह जांचें कि झूठी अगर यह लोड करें मैं गतिशील बटन पर गतिशील बटन क्लिक ईवेंट कैसे बना सकता हूं? TypeError: 'अपरिभाषित' एक फ़ंक्शन नहीं है (मूल्यांकन '$ (दस्तावेज़)') चार ए स्ट्रिंग के बीच अंतर क्या है ?; और चार * p =? स्ट्रिंग?;? मनमाना-सटीक अंकगणितीय स्पष्टीकरण ISO 8601- संगत स्ट्रिंग को java.util.Date में कनवर्ट करना सी ++ में एक पूर्णांक log2 () कैसे करें? सीएफएलएफ के साथ एलएफ़ की जगह जीआईटी एंड्रॉइड: अन्य एप्लिकेशन की साझा प्राथमिकताओं को पुनर्प्राप्त करना क्या मेमोरी रिसाव बनाया जाता है यदि .Net में MemoryStream बंद नहीं होता है? आईओएस 7.0 और सिस्टम डिग्रेडेशन के तहत अमान्य संदर्भ 0x0

file_get_contents ("php: // इनपुट") या $ HTTP_RAW_POST_DATA, जो कि JSON अनुरोध के शरीर को प्राप्त करना बेहतर है?

file_get_contents ("php: // इनपुट") या $ HTTP_RAW_POST_DATA, जो एक बेहतर है JSON अनुरोध के शरीर को पाने के लिए?

और क्लाइंट पक्ष XmlHTTPRequest का उपयोग करते समय JSON डेटा भेजने के लिए मुझे किस अनुरोध के प्रकार ( GET या POST ) का उपयोग करना चाहिए?

मेरा प्रश्न इस उत्तर से प्रेरित था: कैसे सीएसएल के साथ पीएसए के लिए JSON को पोस्ट करें

वह कहता है:

एक प्रोटोकॉल परिप्रेक्ष्य file_get_contents("php://input") से वास्तव में अधिक सही है, चूंकि आप वास्तव में एचटीटीपी मल्टीपार्ट फॉर्म डेटा का संसाधन नहीं कर रहे हैं।

वेब के समाधान से एकत्रित समाधान "file_get_contents ("php: // इनपुट") या $ HTTP_RAW_POST_DATA, जो कि JSON अनुरोध के शरीर को प्राप्त करना बेहतर है?"

वास्तव में php://input आपको कच्चे POST डेटा पढ़ने की अनुमति देता है।

यह $ HTTP_RAW_POST_DATA के लिए कम स्मृति गहन विकल्प है और किसी विशेष php.ini निर्देशों की आवश्यकता नहीं है

php://input enctype="multipart/form-data" साथ उपलब्ध नहीं है

संदर्भ: http://php.net/manual/en/wrappers.php.php

php: // इनपुट एक पठन-केवल स्ट्रीम है जो आपको अनुरोध निकाय से कच्चे डेटा पढ़ने की अनुमति देता है। POST अनुरोधों के मामले में, यह $ HTTP_RAW_POST_DATA के बजाय php: // इनपुट का उपयोग करने के लिए बेहतर है क्योंकि यह विशेष php.ini निर्देशों पर निर्भर नहीं करता है । इसके अलावा, उन मामलों के लिए जहां $ HTTP_RAW_POST_DATA डिफ़ॉल्ट रूप से पॉपुलेटेड नहीं है, यह हमेशा_पोपुल___________ स्थिति_डेटा को सक्रिय करने के लिए एक संभावित कम स्मृति गहन विकल्प है।

स्रोत: http://php.net/manual/en/wrappers.php.php

file_get_contents (php: // input) – कच्चे POST डेटा प्राप्त होता है और जब आप एपीआई लिखते हैं और XML / JSON / … इनपुट की आवश्यकता होती है, जिसे PHP के कुछ उदाहरणों में $ _POST तक डिकोड नहीं किया जा सकता है :

पोस्ट JSON स्ट्रिंग द्वारा भेजें

 <input type="button" value= "click" onclick="fn()"> <script> function fn(){ var js_obj = {plugin: 'jquery-json', version: 2.3}; var encoded = JSON.stringify( js_obj ); var data= encoded $.ajax({ type: "POST", url: '1.php', data: data, success: function(data){ console.log(data); } }); } </script> 

1.php

 //print_r($_POST); //empty!!! don't work ... var_dump( file_get_contents('php://input')); 

आपके द्वारा अनुरोध को कैसे भेजा जाता है, इसके लिए सामान्य नियम लागू होना चाहिए। यदि अनुरोध सूचना प्राप्त करना है (उदाहरण के लिए आंशिक खोज 'हिंट' परिणाम, या एक नया पृष्ठ प्रदर्शित किया जाए, आदि …) तो आप GET का उपयोग कर सकते हैं अगर भेजा जा रहा डेटा कुछ को बदलने का अनुरोध (एक डेटाबेस अपडेट करें, रिकॉर्ड को हटाएं, आदि।) का हिस्सा है, तो पोस्ट का उपयोग करें।

सर्वर-पक्ष, कच्चे इनपुट का उपयोग करने का कोई कारण नहीं है, जब तक कि आप पूरे पोस्ट को प्राप्त न करें / एक ही बार में डेटा ब्लॉक प्राप्त करें। सामान्य के रूप में आप _GET / _POST arrays के माध्यम से विशिष्ट जानकारी प्राप्त कर सकते हैं एएमएक्स पुस्तकालयों जैसे कि मूटोल्स / jQuery वास्तविक एजेएक्स कॉल्स करने और आपके लिए उपयुक्त प्रारूपों में एन्कोडिंग फॉर्म डेटा के कठिन भाग को संभाल लेंगे।

JSON डेटा के लिए, इसे "एप्लिकेशन / जेसन" सामग्री-प्रकार के रूप में पोस्ट करना बहुत आसान है। यदि आप GET का उपयोग करते हैं, तो आपको एक पैरामीटर में JSON को यूआरएल-एन्कोड करना होगा और यह गंदा है। इसके अलावा, जब आप पोस्ट करते हैं तब कोई आकार सीमा नहीं होती है जीईटी का आकार बहुत सीमित है (अधिकतम 4K)

आपका दूसरा प्रश्न आसान है, GET में सर्वर और ब्राउज़र दोनों पक्षों पर 1-2 किलोबाइट्स के आकार की सीमा है, इसलिए किसी भी तरह की बड़ी मात्रा में आपको POST के माध्यम से भेजना होगा।