/ / अजाक्स क्रॉस डोमेन त्रुटि - अजाक्स, डीजेंगो, टॉमकैट, क्रॉस-डोमेन

अजाक्स क्रॉस डोमेन त्रुटि - AJAX, django, tomcat, क्रॉस-डोमेन

मैं इस समस्या का सामना करता हूं:

मेरे पास एक django (python) सर्वर है जो लोकलहोस्ट: XML पर 8000 की सेवा करता है

मेरे पास लोकलहोस्ट: 8080 पर टॉमकैट का उपयोग करने के लिए एक जीवनरेखा परियोजना है, जिसे इस XML फ़ाइलों (जावास्क्रिप्ट के साथ जावास्क्रिप्ट में) को कॉल करने की आवश्यकता है

यह फ़ाइलों को कॉल करता है, लेकिन उन्हें कभी नहीं मिलता है।

इस फ़ाइल को प्राप्त करने के लिए मुझे क्या करना होगा?

अग्रिम धन्यवाद।

संपादित करें:

यहाँ मेरा अनुरोध है:

$.ajax({
type: "GET",
url: "http://127.0.0.1:8000/charger/entreprise/",
dataType: "xml",
crossDomain : true,
success: function(xml){
alert(xml);
}
});

यहाँ मेरा अनुरोध हैडर है:

Host    127.0.0.1:8000
User-Agent  Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20100101 Firefox/8.0
Accept  application/json, text/javascript, */*; q=0.01
Accept-Language fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
Referer http://localhost:8080/web/guest/home
Origin  http://localhost:8080

वास्तव में, मुझे आश्चर्य है कि अगर समस्या जावास्क्रिप्ट से आती है, तो मुझे लगता है कि सर्वरों के कारण।

कई समाधानों की कोशिश करने के बाद, जो "t काम नहीं करता है, मैंआखिरकार मेरी समस्या हल हो गई है आप लोग सही थे, JSONP समाधान था, भले ही मुझे इसे django, और मेरी विशिष्ट समस्या के लिए अनुकूलित करना था, जो बिल्कुल भी आसान नहीं था।

उत्तर:

जवाब के लिए 2 № 1

आपको AJSON अनुरोधों को पार करने के लिए JSONP (JSON पैडिंग) का उपयोग करना होगा। }

JSONP पर जानकारी के लिए इस लिंक का संदर्भ लें

http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

और jquery में JSONP फीचर भी है। जाँच करें कि jquery प्रलेखन में


उत्तर № 2 के लिए 1

डिफ़ॉल्ट ब्लॉक क्रॉस डोमेन अनुरोधों के ब्राउज़र .. यदि आप अधिक विवरण के लिए JSONP में इस लुक को प्राप्त करना चाहते हैं।


उत्तर № 3 के लिए 1

यदि क्रॉस डोमेन अजाक्स आपकी एकमात्र समस्या है तो आप इसके साथ कर सकते हैं JSONP.

विभिन्न JS फ्रेमवर्क ने इसे पहले ही लागू कर दिया है (उदाहरण के लिए "crossDomain" सेटिंग के लिए देखें JQuery AJAX)

सेट करने का प्रयास करें dataType: "jsonp xml" आपके AJAX अनुरोध के लिए।


उत्तर के लिए 1 № 4

जैसा कि दूसरों ने उल्लेख किया है, JSONP आपकी समस्या का समाधान करेगा। यह क्रॉस-डोमेन AJAX कार्यक्षमता की अनुमति देता है।

एक विकल्प के सामने एक वेब सर्वर का उपयोग करना हैआपके Django साइट और आपके Tomcat साइट दोनों और यह प्रॉक्सी अनुरोध है। उदाहरण के लिए, आपकी मुख्य साइट लोकलहोस्ट: 80 पर चलती है, और URLS के आधार पर, इसे उपयुक्त बैकएंड सर्वर पर भेजती है। इस तरह से, क्लाइंट और जावास्क्रिप्ट के नजरिए से, HTML और JSON अनुरोध एक ही सर्वर पर जा रहे हैं।