मुझे कुछ बहुत आसान करना है, लेकिन ऐसा करने का एक आसान तरीका प्रतीत नहीं होता है, जहां तक मैं कह सकता हूं। मैं सिर्फ एक दूरस्थ स्रोत से JSON डेटा लोड करना चाहता हूं और इसे jQuery का उपयोग कर वैश्विक जावास्क्रिप्ट चर में संग्रहीत करना चाहता हूं। यहां मेरे पास है:लोड जेसन परिवर्तनीय
var my_json;
$.getJSON(my_url, function(json) {
var my_json = json;
});
my_json चर अपरिभाषित रहता है। मुझे लगता है कि यह स्पष्ट रूप से एक गुंजाइश मुद्दा है। मुझे लगता है कि $ .getJSON विधि JSON वापस करनी चाहिए, लेकिन यह एक XMLHttpRequest ऑब्जेक्ट देता है। मैं ऐसा करते हैं तो:
request = $.getJSON(my_url);
my_json = request.responseText.evalJSON();
ऐसा इसलिए है क्योंकि readyState == 4 जब तक काम नहीं करता, responseText अशक्त बना हुआ है। ऐसा लगता है कि आपको प्रतिक्रिया प्रतिक्रिया वापस करने के लिए कॉलबैक फ़ंक्शन का उपयोग करना होगा, क्योंकि यह सफलता पर आग लगती है।
यह कठिन नहीं हो सकता है! सही?
बस मेरे लाभ के लिए स्पष्टीकरण के लिए: $ .getJSON सिंक्रोनस स्टाइल अनुरोधों के लिए कभी भी अच्छा विकल्प नहीं है, भले ही मैं सफलता कॉलबैक के दौरान अपने चर में डेटा वापस करूं? संबंधित जानकारी के लिए – user1026169
+1 लेकिन आप फ़ंक्शन की शुरुआत में जेसन परिवर्तनीय शून्य क्यों बना रहे हैं। – Manoj
@Manoj 2 कारण हैं [1] यह ब्लॉक एक विधि के अंदर हो सकता है, और कई बार कहा जाता है। इसलिए यह जेसन वैरिएबल रीफ्रेश करेगा। लेकिन अगर AJAX अनुरोध इसे अद्यतन करेगा तो वैसे भी क्या बात है? ठीक है क्योंकि ... [2] यह एक कोडिंग सम्मेलन है जो AJAX अनुरोध विफल रहता है, तो उपयोगकर्ता जांच सकता है कि जेसन शून्य है या नहीं। यदि ऐसा है, तो यह माना जा सकता है कि AJAX अनुरोध –