का उपयोग कर मैं एक jQuery ajax() कॉल कैसे कोड कर सकते हैं (उदाहरण के लिए XMLHttpRequest) सत्र आईडी संरक्षित करने के लिए (उदाहरण के लिए पहले से ही 'jsessionid' कुकी भेज ब्राउज़र की कुकी में)का दोबारा उपयोग jQuery
ajax XMLHttpRequest पर jsessionid हमारे संदर्भ:
- दो जावा आधारित वेब अनुप्रयोगों
- एसएसओ तंत्र दोनों अनुप्रयोगों में उपयोगकर्ता के लॉग
- एक (यानी आवेदन एक और आवेदन बी के साथ सत्र 202 के साथ सत्र 101 है) pplication 'ए' जावास्क्रिप्ट (jQuery) का उपयोग करता है बाकी (fwiw)
- सभी मिलता है और "ओल्ड-स्कूल फ़ॉर्म पोस्ट" आवेदन एक से बी को कनेक्ट
- आवेदन बी जावा जर्सी में बाकी एपीआई लागू किया आवेदन बी को कॉल करने के लिए "सत्र बी"
- XmlHttpRequests (उदा। jquery 'AJAX()' कॉल) सत्र # 202 का पुन: उपयोग नहीं करते हैं। प्रत्येक XmlHttpRequest को एक नया सत्र
नए सत्र क्यों?
कारण: XmlHttpRequest आवेदन करने के लिए किसी भी कुकीज़ को पास नहीं करता है। Servlet कंटेनर कुकी में jsessionid सेट करता है। सर्वर jsessionid
इसके विपरीत नहीं मिलता है, JSONP कॉल (जो गतिशील < स्क्रिप्ट src = उत्पन्न "http: //server/b/page.x" >) कुकीज़ पारित करते हैं।
सवाल
- ajax XMLHttpRequest प्राप्त करने के लिए सबसे आसान तरीका है लक्ष्य आवेदन करने के लिए सत्र id (कुकीज़) बढ़ाने के लिए बुलाता है?
- AJAX, कुकी, xmlhttprequest, और REST पर कोई अच्छा संदर्भ?
- कोई भी आरईएसटी एपीआई डिजाइन और प्रमाणीकरण पर पढ़ने की सिफारिश कर सकता है?
वेब सत्र, राज्य, और प्रमाणीकरण
मैं जानता हूँ कि बाकी राज्यविहीन माना जाता है, और फिर से उपयोग कर वेब सत्र को कुछ हद तक कमजोर लगता है (यानी के रूप में OAuth और प्रमाणीकरण टोकन का उपयोग कर का विरोध किया, करता है नेटफ्लिक्स)
यह पहला पुनरावृत्ति है और हम चीज़ें "ऊपर और चलने" के करीब थे। यह JSONP के साथ ठीक काम करता है, लेकिन XmlHttpRequest पोस्ट विफल रही। पहले से
धन्यवाद
अद्यतन:
एक अनुभवहीन वास्तव में सवाल।
यह पता चला है कि xmlhttprequest/AJAX के माध्यम से क्रॉस-साइट पोस्टिंग में अंतर्निहित सुरक्षा समस्याएं और कामकाज हैं। फ़ायरफ़ॉक्स, उदाहरण के लिए, XmlHttpRequest के साथ कुकीज पास नहीं करेगा जबतक कि आप विशेष शीर्षलेख जोड़ते हैं।फिर फ़ायरफ़ॉक्स सर्वर पर "प्री-फ्लाइट चेक '(यानी एक http विकल्प कॉल) करेगा" यह ठीक है? "। फ़ायरफ़ॉक्स आपके "कुकीज के साथ पोस्ट" करने से पहले आपके सर्वर को "विकल्प" कॉल का जवाब देना होगा "हाँ यह ठीक है"।
आईई और फ़ायरफ़ॉक्स इन समस्याओं को अलग-अलग हल करते हैं (यानी 1 99 8 के आसपास जावास्क्रिप्ट की तरह थोड़ा)। मैं नहीं जानता कि आईई क्या करता है, लेकिन 1 99 8 के माध्यम से रहता है, हम वास्तव में उस सड़क पर वास्तव में नीचे जाना नहीं चाहते हैं।
हमने एक कामकाज को कोड किया।
हमारी टीम में से कोई भी यह नहीं जानता था जब हमने कोडिंग शुरू की थी। (यानी "jsonp प्रोटोटाइप में महान काम किया, सब कुछ भी चाहिए")
संदर्भ: कैसे मोज़िला इस समस्या (http हेडर और preflight चेक) के पते https://developer.mozilla.org/En/HTTP_access_control
क्रॉस ओरिजिन रिसोर्स शेयरिंग: http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing
क्या आप बताए गए कामकाज का वर्णन कर सकते हैं? – jmend
हमने एसएसओ प्रमाणीकरण टोकन को एक अनुरोध पैरामीटर के रूप में पारित किया और इस पैरामीटर की जांच के लिए सर्वर-पक्ष को संशोधित किया। यह थोड़ा सा हैकिश गंध, लेकिन लगातार और सीधा था। हमने * पैरामीटर के रूप में टॉमकैट के jsessionId को पास करने की कोशिश नहीं की क्योंकि यह काम नहीं करेगा। – user331465
धन्यवाद, यह समझ में आता है। – jmend