जबकि मुझे पता है कि ASP.NET MVC जैसे कई आर्किटेक्चर ने JSON को संभालने के लिए अंतर्निहित कार्यक्षमता का उपयोग किया है। क्योंकि मेरी स्थिति थोड़ी अलग है, इसलिए शायद यह भविष्य में किसी की मदद कर सके। मुझे पता है कि इसने मुझे घंटों बचाया होगा!
चूँकि मेरे http अनुरोधों को IBM (AS400 वातावरण) के CGI API द्वारा एक अलग उपडोमेन पर संभाला जा रहा है, इसलिए ये अनुरोध क्रॉस ओरिजिनल हैं, इसलिए jsonp है। मैं वास्तव में जावास्क्रिप्ट ऑब्जेक्ट (ओं) के माध्यम से अपना अजाक्स भेजता हूं। यहाँ मेरे ajax POST का एक उदाहरण है:
var data = {USER : localProfile,
INSTANCE : "HTHACKNEY",
PAGE : $('select[name="PAGE"]').val(),
TITLE : $("input[name='TITLE']").val(),
HTML : html,
STARTDATE : $("input[name='STARTDATE']").val(),
ENDDATE : $("input[name='ENDDATE']").val(),
ARCHIVE : $("input[name='ARCHIVE']").val(),
ACTIVE : $("input[name='ACTIVE']").val(),
URGENT : $("input[name='URGENT']").val(),
AUTHLST : authStr};
//console.log(data);
$.ajax({
type: "POST",
url: "http://www.domian.com/webservicepgm?callback=?",
data: data,
dataType:'jsonp'
}).
done(function(data){
//handle data.WHATEVER
});
dataType
डेटा कैसे भेजा जाता है पर कोई प्रभाव नहीं। यह केवल यह निर्दिष्ट करता है कि आप किस प्रकार के डेटा को कॉल द्वारा वापस करने की अपेक्षा करते हैं। यदि आप सर्वर को इंगित करना चाहते हैं कि आप किस प्रकार का डेटा देख रहेdata
हैं, तो आप उस संपत्ति को निर्दिष्ट कर रहेcontentType
हैं, जिसके समान आपको संपत्ति सेट करने की आवश्यकता हैcontentType: "application/json"