मैं एक वेब साइट है कि एक और वेब साइट पर एक MVC नियंत्रक कार्रवाई कॉल करने के लिए कोशिश कर रहा है है। ये साइटें एडी एफएस 2.0 में निर्भर पार्टी ट्रस्ट के रूप में दोनों सेट हैं। दो साइटों के बीच ब्राउज़र विंडो में पृष्ठों को खोलते समय सबकुछ प्रमाणित करता है और ठीक काम करता है। हालांकि, jQuery AJAX विधि का उपयोग कर जावास्क्रिप्ट से नियंत्रक कार्रवाई को कॉल करने का प्रयास करते समय यह हमेशा विफल रहता है। यहाँ मैं क्या कर रहा हूँ की एक कोड का टुकड़ा ...ई FS 2.0 प्रमाणीकरण और AJAX
$.ajax({
url: "relyingPartySite/Controller/Action",
data: { foobar },
dataType: "json",
type: "POST",
async: false,
cache: false,
success: function (data) {
// do something here
},
error: function (data, status) {
alert(status);
}
});
मुद्दा यह है कि ई एफएस भरोसा पार्टी के लिए एक छिपा एचटीएमएल प्रपत्र पोस्ट करने के लिए जावास्क्रिप्ट का उपयोग करता है। जब फ़िडलर साथ अनुरेखण मैं इसे ई FS साइट पर आते हैं और इस एचटीएमएल रूप है जो पोस्ट और नियंत्रक कार्रवाई प्रमाणीकृत की ओर ही रीडायरेक्ट वापसी देख सकते हैं। समस्या इस फार्म ajax अनुरोध के परिणाम के रूप में वापस आ रहा है और स्पष्ट रूप के बाद से ajax अनुरोध नियंत्रक कार्रवाई से json उम्मीद एक पार्सर त्रुटि के साथ विफल करने के लिए जा रहा है। ऐसा लगता है कि यह एक आम परिदृश्य होगा, इसलिए एडीएक्स से एडी एफएस के साथ संवाद करने और इस पुनर्निर्देशन को संभालने का सही तरीका क्या है?
यदि HTML को AJAX कॉल द्वारा वापस किया जा रहा है, तो स्पष्ट रूप से आप इसे जेसन पार्सर से पार्स नहीं करना चाहते हैं। डेटा बदलें "एचटीएमएल" टाइप करें, और एचटीएमएल का एक उदाहरण पोस्ट करें, इसलिए मैं आपको दिखा सकता हूं कि एक हैंडलर कैसे लिखना है जो लौटा हुआ फॉर्म जमा करेगा। – ironchefpython
मुद्दा यह है कि मैं JSON वापस प्राप्त करना चाहता हूं। एडी एफएस एक नए एचटीएमएल फॉर्म के साथ रीडायरेक्ट करता है जो इसे हैंडशेक करने के लिए पोस्ट करना चाहता है। यह एक ब्राउज़र विंडो के भीतर ठीक काम करता है लेकिन यहां नहीं। एक बार हैंडशेक होने पर AJAX अनुरोध के साथ कोई रीडायरेक्ट नहीं होता है और मैं JSON वापस आ जाता हूं। मैं आईएफआरएएम में एचटीएमएल पेज पोस्ट को संभालने के लिए अभी एक कामकाज के साथ आया हूं लेकिन यह आदर्श नहीं है। –
मैं समझता हूं कि आप जेएसओएन वापस लेना चाहते हैं, लेकिन आप JSON वापस नहीं जा रहे हैं। _However_, यदि आप लौटाए गए डेटा स्ट्रक्चर का इलाज करने में सक्षम होना चाहते हैं जैसे कि यह _were_ JSON है, तो HTML का एक उदाहरण पोस्ट करें, और मैं आपको दिखाऊंगा कि एक हैंडलर कैसे लिखना है जो ** के बिना लौटा फॉर्म सबमिट करेगा ** एक IFRAME का उपयोग कर। – ironchefpython