2015-12-14 7 views
7

द्वारा पैरामीटर पास करते हैं मैं HTML5 सर्वर भेजे गए ईवेंट का उपयोग कर रहा हूं। सर्वर पक्ष जावा सर्वलेट है। मेरे पास एक जेसन सरणी डेटा सर्वर से गुजरना चाहता है।सर्वर भेजे गए ईवेंट पोस्ट विधि

var source = new EventSource("../GetPointVal?id=100&jsondata=" + JSON.stringify(data)); 

यदि सरणी का आकार छोटा है, तो सर्वर पक्ष क्वेरीस्ट्रिंग प्राप्त कर सकता है। लेकिन अगर सरणी का आकार बड़ा है। (शायद हजारों वर्णों से अधिक), सर्वर क्वेरीस्ट्रिंग नहीं प्राप्त कर सकता है। क्या JS12 सरणी को सर्वर पर पास करने के लिए new EventSource(...) में पोस्ट विधि का उपयोग करना संभव है जो क्वेरीस्ट्रिंग लंबाई सीमा से बच सकता है?

उत्तर

16

नहीं, एसएसई मानक पोस्ट की अनुमति नहीं देता है।

(किसी तकनीकी कारण के लिए, जहां तक ​​मैं कहने में सक्षम हूं - मुझे लगता है कि यह केवल इतना था कि डिजाइनरों ने कभी भी उपयोग के मामलों को नहीं देखा: यह केवल बड़ा डेटा नहीं है, लेकिन यदि आप एक कस्टम करना चाहते हैं प्रमाणीकरण योजना सुरक्षा कारण हैं जीईटी डेटा में पासवर्ड न डालने के लिए।)

XMLHttpRequest (यानी AJAX) POST की अनुमति देता है, इसलिए एक विकल्प पुराने लंबे मतदान/धूमकेतु विधियों पर वापस जाना है। (मेरी किताब, Data Push Apps with HTML5 SSE ऐसा करने के तरीके के बारे में काफी कुछ विस्तार में चला जाता है।)

एक और दृष्टिकोण POST सब पहले से डेटा के लिए है, और एक HttpSession में संग्रहीत है, और फिर SSE प्रक्रिया फोन है, जो उपयोग कर सकते हैं उस सत्र डेटा के। (एसएसई कुकीज़ का समर्थन करता है, इसलिए JSESSIONID कुकी को ठीक काम करना चाहिए।)

पीएस standard स्पष्ट रूप से नहीं कहता है कि POST का उपयोग नहीं किया जा सकता है। लेकिन, XMLHttpRequest के विपरीत, उपयोग करने के लिए http विधि निर्दिष्ट करने के लिए कोई पैरामीटर नहीं है, और जिस डेटा को आप पोस्ट करना चाहते हैं उसे निर्दिष्ट करने का कोई तरीका नहीं है।

+0

आपके उत्तर के लिए Tks। –

+3

"मुझे लगता है कि डिजाइनरों ने कभी भी उपयोग के मामलों को नहीं देखा" एक और अगर आप फ़ाइल अपलोड करना चाहते हैं और सर्वर साइड प्रसंस्करण पूरा करने की प्रगति प्राप्त करना चाहते हैं। – Yaroslav

+0

एसएसई के लिए मेरे उपयोग मामलों का 9 0% पोस्ट है। सर्वर पर कुछ प्रकार का संसाधन बनाना जो प्रक्रिया में समय लेता है। –

संबंधित मुद्दे