2010-02-04 12 views
6

मेरे पास यह मतदान स्क्रिप्ट है यह जांचने के लिए कि सर्वर पर कोई टेक्स्ट फ़ाइल बनाई गई है या नहीं। स्थानीय स्तर पर बहुत अच्छा काम करता है, लेकिन जब फ़ाइल एक अलग डोमेन पर होती है तो विफल हो जाती है। क्रॉस डोमेन समर्थन के लिए मैं इसे कैसे लिखूं?JQuery AJAX क्रॉस डोमेन कॉल और अनुमति समस्या

$.ajax({ 
    url: 'http://blah.mydomain.com/test.txt', 
    type: "GET", 
    success: function(result) { 
     //Success! 
     window.location.replace(Successful.aspx'); 
    }, 
    error: function(request, status, error) { 
     setTimeout("VerifyStatus(" + pollingInterval + ")"); 
    } 
    }); 

संपादित करें: मैं क्रॉस डोमेन मुद्दे को हल करने के लिए YQL का उपयोग कर समाप्त हो गया और हालांकि यह काम करता है, YQL वास्तव में है कि काफी प्रदर्शन भूमि के ऊपर का एक सा जोड़ने की धीमी है। क्या कोई क्रॉस डोमेन JQuery कॉल के लिए बेहतर समाधान सुझा सकता है?

उत्तर

7

अपने $.ajax() फोन पर डेटाप्रकार करने के लिए "JSONP" सेट करें। आपको यह सुनिश्चित करना होगा कि प्रतिक्रिया के लिए प्रतिक्रिया ठीक से स्वरूपित है। विकिपीडिया का JSONP पर एक अच्छा अनुभाग है।

+0

यदि आप लक्ष्य फ़ाइल की सामग्री पर नियंत्रण रखते हैं तो यह अच्छा है। – Bruce

+0

मेरे पास txt फ़ाइल के निर्माण पर नियंत्रण है। Jsonp के साथ, क्या मुझे टेक्स्ट फ़ाइल में JSON स्ट्रिंग लिखनी है? मैं एएसपी.नेट का उपयोग कर रहा हूं और इसे – Nick

+0

@ user102533 सही एक साथ रखने में परेशानी है। आप ASP.NET JSON serializers की सूची के लिए json.org पर जा सकते हैं। –

4

अजाक्स क्रॉस डोमेन नहीं जाता है। आपकी सबसे अच्छी शर्त स्थानीय डोमेन पर एक PHP पृष्ठ बनाना है जो चेक करता है, और आपके AJAX कॉल के साथ-साथ-साथ जाता है।

+0

आप लक्ष्य फ़ाइल की सामग्री पर नियंत्रण नहीं है, तो यह अच्छा है। – Bruce

+0

मेरे पास टेक्स्ट फ़ाइल (इसकी सेवा द्वारा बनाई गई) पर नियंत्रण है – Nick

+0

उत्तर पुराना है। क्रॉस-डोमेन अजाक्स और अप्रत्यक्ष तरीकों को करने के दो प्रत्यक्ष तरीके हैं। ** 1। ** [JSONP] (http://en.wikipedia.org/wiki/JSONP), 'XMLHttpRequest' की बजाय कॉलबैक के साथ '

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