2010-05-11 3 views
5

मेरे पास कुछ जावास्क्रिप्ट कोड है जो फ्रेमवर्क 2.0 के साथ निर्मित एएसपीनेट वेब सेवाओं से जेसन आउटपुट को संसाधित करता है। अब मुझे फ्रेमवर्क 3.5 वेब सेवाओं से लौटाए गए डेटा का समर्थन करने की आवश्यकता है।एएसपी.Net वेब सेवा जेसन आउटपुट से "डी" ऑब्जेक्ट को हटा रहा है

मेरा जावास्क्रिप्ट कोड वस्तुओं की एक सूची वापसी मूल्य के रूप में मानता है, जो 2.0 में ठीक काम करता है। हालांकि ढांचे 3.5 में, सूची "डी" ऑब्जेक्ट में लपेटा गया है। क्या कोई तरीका है कि मैं "डी" रैपर को हटा सकता हूं और बस सूची वापस कर सकता हूं?

मैं सर्वर साइड

+3

साइड नोट: 'डी' रैपर एक सुरक्षा उपाय है। Http://encosia.com/2009/02/10/a-breaking-change-between-versions-of-aspnet-ajax/#comment-34045 –

+0

संबंधित: http://stackoverflow.com/questions/830112/ देखें क्या-करता-डी-इन-जेसन-माध्य –

उत्तर

5

onthe इसे ठीक करने के लिए आप 3.5+ सेवाओं कॉन्फ़िगर नहीं कर सकता .d वापस जाने के लिए नहीं पसंद करेंगे। यह अच्छा है कि यह भी वहां है, क्योंकि यह एक मुश्किल JSON अपहरण परिदृश्य से बचाता है जो बाहरी JSON इकाई एक सरणी है जब मौजूद है।

एएसपी.नेट AJAX के क्लाइंट-साइड प्रॉक्सी स्वचालित रूप से .d को छिपाते हैं। अगर यह आपके रास्ते में हो रहा है, तो मुझे लगता है कि आप सेवा कॉल करने के लिए jQuery की तरह कुछ उपयोग कर रहे हैं? उदाहरण के लिए You can normalize the .d in jQuery by using its DataFilter callback

+0

धन्यवाद। मैं mootools का उपयोग करें। Mootools के लिए ऐसा कुछ मिल जाएगा या खुद को रोल – Midhat

0

ठीक है अगर आपको क्लाइंट पक्ष में बदलने का लाभ है तो सबसे अच्छा तरीका jquery का उपयोग कर रहा है और आपको समाधानों का एक टन मिल जाएगा। लेकिन यदि आप सेवा परत पर "डी" को हटाना चाहते हैं तो वेब एपी में अपना वेबसाईट फिर से लिखना सबसे अच्छा तरीका है (आप डब्ल्यूसीएफ का भी उपयोग कर सकते हैं)। वेब एपी प्रतिक्रिया में "डी" वापस नहीं करता है।

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