2012-04-11 3 views
6

यह एक क्रॉस-डोमेन समस्या है, लेकिन समस्या यह है कि ब्राउजर (क्रोम) रीडायरेक्ट का पालन नहीं करता है। इसके बजाए, jQuery AJAX कॉल में कुछ भी वापस नहीं किया गया है, और मुझे एक त्रुटि मिलती है।jQuery AJAX डोमेन पर कॉल करता है जो किसी अन्य डोमेन पर रीडायरेक्ट करता है (0 का पालन नहीं किया जाता है)

मैं jQuery.ajax का उपयोग करने की कोशिश कर रहा हूं, लेकिन यूआरएल जिसका उपयोग मैं किसी अन्य डोमेन पर रीडायरेक्ट कर रहा हूं। जब ऐसा होता है, तो मुझे एक त्रुटि मिलती है। क्या कुछ खास है जो करने की ज़रूरत है ताकि ब्राउज़र रीडायरेक्ट का पालन करेगा?

मैंने पहले से ही access-control-allow-origin: * को दूसरे डोमेन के शीर्षलेख में जोड़ा है जिसे रीडायरेक्ट किया जा रहा है।

+0

आप अपने कोड और त्रुटि आप देख जोड़ सकते हैं? –

+0

आपको अपने AJAX में अन्य डोमेन से डेटा लाने की अनुमति नहीं है। –

उत्तर

0

क्रॉस-डोमेन AJAX कॉल प्राप्त करने का एकमात्र तरीका jsonp का उपयोग करना है।

jQuery में, अपने .ajax() डेटा टाइप करें 'jsonp' टाइप करें। यहां देखें: http://api.jquery.com/jQuery.ajax/

यह अभी भी काम नहीं कर सकता है, अगर सर्वर को रीडायरेक्ट किया जा रहा है तो एक jsonp प्रतिक्रिया में सक्षम नहीं है। एक जेसन प्रतिक्रिया और जेएसएसपी प्रतिक्रिया के बीच का अंतर यह है कि एक जेसन प्रतिक्रिया एक शुद्ध जेसन स्ट्रिंग है, जबकि एक जेसनपी प्रतिक्रिया वह कोड है जो एक जेसन स्ट्रिंग में गुजरने वाले फ़ंक्शन को कॉल करता है।

एक नहीं के लिए भी जर्जर ट्यूटोरियल: http://remysharp.com/2007/10/08/what-is-jsonp/

एक अच्छी चर्चा: Can anyone explain what JSONP is, in layman terms?

+2

क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) के साथ क्रॉस डोमेन AJAX कॉल संभव है और लेखक ने इस तकनीक के साथ काम किया है (जैसा कि उन्होंने "एक्सेस-कंट्रोल-अनुमति-उत्पत्ति: *" हेडर का उल्लेख किया है।) – vadimk

+0

@vadimk, शायद आप एक उत्तर दे सकते हैं तब इस दृष्टिकोण को शामिल करना। लेकिन यह पोस्ट से लगता है कि समस्या क्लाइंट-साइड पर है। सीओआरएस के साथ 'एक्सेस-कंट्रोल-अनुमति-मूल' दृष्टिकोण सर्वर की तरफ है। यहां तक ​​कि अगर सर्वर इसे अनुमति देता है, तो क्लाइंट इसे अनुमति नहीं दे रहा था। इस प्रकार JSONP। –

+0

जोनाथन, मेरा जवाब देखें। समाधान में यह सुनिश्चित करना शामिल है कि रीडायरेक्ट पेज में उचित प्रतिक्रिया शीर्षलेख हैं। – BigMacAttack

1

एक HTTP रीडायरेक्ट पृष्ठ में यह भी अभिगम नियंत्रण हेडर की जरूरत है कि किसी भी अन्य HTTP पेज के रूप में व्यवहार किया जाता है। यदि आपके रीडायरेक्ट पेज में उनके पास नहीं है, तो ब्राउजर को यह देखने के लिए कभी भी नहीं मिलेगा कि पेज को रीडायरेक्ट किया जा रहा है या नहीं।

रीडायरेक्ट पृष्ठ पर Location हैडर के साथ साथ, यह भी Access-Control-Allow-Origin शीर्ष लेख और इससे संबंधित घटकों (अर्थात Access-Control-Allow-Methods आदि)

+2

आपके उत्तर में बहुत सारे सिद्धांत हैं .. कोड के कुछ पंक्तियों को चित्रित करने के लिए जो आप कह रहे हैं वह चोट नहीं पहुंचाएगा – abbood

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