php - अनुरोध पेलोड कैसे प्राप्त करें




javascript json extjs (3)

इसके अलावा आप encode साथ extJs writer सेट कर सकते हैं : true और यह नियमित रूप से डेटा भेज देगा (और, इसलिए, आप $_POST और $_GET माध्यम से डेटा पुनर्प्राप्त करने में सक्षम होंगे)।

... मूल्य कच्चे पोस्ट के विपरीत अनुरोध पैरामीटर के हिस्से के रूप में भेजा जाएगा (Ext.data.writer.Json की एन्कोड कॉन्फ़िगरेशन के लिए encode के माध्यम से)

अद्यतन करें

encode भी कहते हैं कि:

रूट परिभाषित होने पर एन्कोड विकल्प केवल सत्य पर सेट होना चाहिए

तो, शायद, writer की root कॉन्फ़िगरेशन आवश्यक है।

मैं PHP , ExtJS और AJAX स्टोर का उपयोग कर रहा हूँ।

यह डेटा (पोस्ट, अपडेट, नष्ट) पर पोस्ट या जीईटी में नहीं भेजता है। क्रोम कंसोल में मैं अपने आउटगोइंग पैरा को " अनुरोध पेलोड " फ़ील्ड में JSON के रूप में देखता हूं। $ _POST और $ _GET खाली हैं।

PHP में इसे कैसे पुनर्प्राप्त करें?


अगर मैं सही ढंग से स्थिति को समझता हूं, तो आप केवल http application/x-www-form-urlencoded http application/x-www-form-urlencoded डेटा के बजाय, http शरीर के माध्यम से जेसन डेटा पास कर रहे हैं।

आप इस डेटा को इस स्निपेट के साथ ला सकते हैं:

$request_body = file_get_contents('php://input');

यदि आप जेसन पास कर रहे हैं, तो आप कर सकते हैं:

$data = json_decode($request_body);

$data तब जेसन डेटा php सरणी है।

php://input एक तथाकथित wrapper

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


आखिरकार, उदाहरणों में से कोई भी मेरे लिए उपयुक्त नहीं है, इसलिए मैंने अपना खुद लिखा।

टेस्ट (इंटरनेट एक्सप्लोरर filter:alpha का कोई समर्थन नहीं filter:alpha ):

ए) जांचें कि दस्तावेज़ छिपा हुआ नहीं है या नहीं

बी) जांचें कि किसी तत्व की शून्य चौड़ाई / ऊंचाई / अस्पष्टता या display:none / visibility:hidden इनलाइन शैलियों में visibility:hidden है

सी) जांचें कि केंद्र (क्योंकि यह हर पिक्सेल / कोने का परीक्षण करने से तेज है) तत्व के अन्य तत्व (और सभी पूर्वजों, उदाहरण: overflow:hidden / स्क्रॉल / एक तत्व पर एक तत्व) द्वारा छिपाया नहीं जाता है या स्क्रीन किनारों

डी) जांचें कि किसी तत्व की शून्य चौड़ाई / ऊंचाई / अस्पष्टता या display:none / दृश्यता: गणना की गई शैलियों में छिपी हुई (सभी पूर्वजों के बीच)

पर परीक्षण किया

एंड्रॉइड 4.4 (मूल ब्राउज़र / क्रोम / फ़ायरफ़ॉक्स), फ़ायरफ़ॉक्स (विंडोज / मैक), क्रोम (विंडोज / मैक), ओपेरा (विंडोज Presto / मैक वेबकिट), इंटरनेट एक्सप्लोरर (इंटरनेट एक्सप्लोरर 5-11 दस्तावेज़ मोड + इंटरनेट एक्सप्लोरर 8 पर आभासी मशीन), सफारी (विंडोज / मैक / आईओएस)

var is_visible = (function () {
    var x = window.pageXOffset ? window.pageXOffset + window.innerWidth - 1 : 0,
        y = window.pageYOffset ? window.pageYOffset + window.innerHeight - 1 : 0,
        relative = !!((!x && !y) || !document.elementFromPoint(x, y));
        function inside(child, parent) {
            while(child){
                if (child === parent) return true;
                child = child.parentNode;
            }
        return false;
    };
    return function (elem) {
        if (
            document.hidden ||
            elem.offsetWidth==0 ||
            elem.offsetHeight==0 ||
            elem.style.visibility=='hidden' ||
            elem.style.display=='none' ||
            elem.style.opacity===0
        ) return false;
        var rect = elem.getBoundingClientRect();
        if (relative) {
            if (!inside(document.elementFromPoint(rect.left + elem.offsetWidth/2, rect.top + elem.offsetHeight/2),elem)) return false;
        } else if (
            !inside(document.elementFromPoint(rect.left + elem.offsetWidth/2 + window.pageXOffset, rect.top + elem.offsetHeight/2 + window.pageYOffset), elem) ||
            (
                rect.top + elem.offsetHeight/2 < 0 ||
                rect.left + elem.offsetWidth/2 < 0 ||
                rect.bottom - elem.offsetHeight/2 > (window.innerHeight || document.documentElement.clientHeight) ||
                rect.right - elem.offsetWidth/2 > (window.innerWidth || document.documentElement.clientWidth)
            )
        ) return false;
        if (window.getComputedStyle || elem.currentStyle) {
            var el = elem,
                comp = null;
            while (el) {
                if (el === document) {break;} else if(!el.parentNode) return false;
                comp = window.getComputedStyle ? window.getComputedStyle(el, null) : el.currentStyle;
                if (comp && (comp.visibility=='hidden' || comp.display == 'none' || (typeof comp.opacity !=='undefined' && comp.opacity != 1))) return false;
                el = el.parentNode;
            }
        }
        return true;
    }
})();

कैसे इस्तेमाल करे:

is_visible(elem) // boolean




php javascript json extjs