2011-12-30 18 views
10

मैं निम्नलिखित कोड प्रारंभिक पृष्ठ पर <div id='job-status'></div> के बीच 'हाय माँ' प्रदर्शित करने के लिए उम्मीद करेंगे, लेकिन यह नहीं है:क्यों मेरी jQuery.get() कॉलबैक नहीं बुलाया जा रहा है?

$(function() { 
    function show_status() { 
     $.get("<%= status_jobs_path -%>", 
       function(data) { 
        $('#job-status').html('hi mom'); 
       }, 'json'); 
    } 
    show_status(); 
}); 

प्राप्त() फ़ंक्शन ट्रिगर हो रहा: मैं अनुरोध पर पहुंचने देखना मेरी सर्वर और एक 200 ओके प्रतिक्रिया जिसमें मेरा JSON कोड है। लेकिन एक चेतावनी() function(data) { ... } शरीर के अंदर कभी नहीं कहा जाता है, और न ही 'हाय माँ' पृष्ठ पर प्रदर्शित है हो जाता है। हालांकि, अगर मैं करने के लिए नीचे कोड पट्टी:

$(function() { 
    function show_status() { 
     $('#job-status').html('hi mom'); 
    } 
    show_status(); 
}); 

... तो यह प्रदर्शन 'हाय माँ' <div id='job-status'></div> भीतर करता है।

IASISO (मुझे यकीन है कि यह कुछ स्पष्ट है हूँ), लेकिन मैं क्या याद आ रही है?

+0

क्या आप फायरबग/क्रोम देव उपकरण में सफलता परिणाम देखते हैं? –

+1

क्या आप वाकई वैध JSON मान्य हैं? अगर पार्सिंग विफल हो जाती है तो jQuery अभी भी 'त्रुटि' कॉलबैक (या ['deferred.fail'] (http://api.jquery.com/deferred.fail/) पर '$ .get') पर रीडायरेक्ट करेगा। –

+1

हाँ, मुझे लगता है कि परिवर्णी शब्द पर पकड़ने नहीं दिख रहा। आपके प्रश्न के संबंध में, क्या आप निश्चित हैं कि JSON ऑब्जेक्ट लौटाया जा रहा है वैध और उचित रूप से संरचित है? साथ ही, क्या यह एक समान डोमेन अनुरोध या क्रॉस-डोमेन है? – Aaron

उत्तर

11

मेरा अनुमान है कि आप गलत json प्रतिक्रिया वापस है। इसे अपने कंट्रोलर एक्शन में डालने का प्रयास करें

render :json => { :message => "Hi mom" }, :status => :ok 
+1

हाँ - वह था। मैंने अभी सीखा है कि जेएसओएन तत्वों की सूची में पिछली कॉमा स्वीकार नहीं करता है (रूबी ने मुझे खराब कर दिया है) और jQuery.get() चुपचाप खराब गठित JSON पर विफल रहता है। धन्यवाद। –

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