2012-09-05 11 views
5

मेरे कोड इस तरह दिखता है:AJAX - JQuery प्राप्त कॉलबैक काम नहीं कर रहा लेकिन JSON फ़ाइल का उपयोग ठीक

$.get('http://files.mysite.com/data.json', function(data) { 
    console.log(data); 
}, "jsonp"); 

जब मैं Network मेनू के अंदर एक नज़र Firebug से मैं अपने JSON फाइल करने के लिए एक वैध कॉल देख सकते हैं लेने के लिए और जब मैं इसे खोलता हूं, तो यह सभी जानकारी प्राप्त करता है।

लेकिन Console चुप रहता है। AJAX कॉल का कोई संकेत नहीं और न ही data का मेरा लॉगिंग।

मेरा AJAX कॉल मेरे JSON फ़ाइल के समान डोमेन पर नहीं है। मैं क्यों उपयोग कर रहा हूं jsonp

कोई विचार ??

उत्तर

13

मुझे पूरी तरह से यकीन नहीं है कि आपकी समस्या क्या है, अगर आपको कोई परिणाम मिलता है लेकिन कंसोल शांत रहता है तो आपको JSON के साथ समस्याएं हो सकती हैं ... JSONLint समस्याओं को ढूंढने का प्रयास करें ।

इसके अलावा, मैं आप की सिफारिश करेंगे getJSON का उपयोग नहीं करते आदि

$.ajax({ 
    url: http://files.mysite.com/data.json, 
    dataType: 'jsonp', 
    cache: false, 

    beforeSend: function() { 
     console.log("Loading"); 
    }, 

    error: function (jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
     console.log(textStatus); 
     console.log(errorThrown); 
    }, 

    success: function (data) { 
     console.log('Success'); 
     console.log(data); 
    }, 

    complete: function() { 
     console.log('Finished all tasks'); 
    } 
}); 

इस तरह से आप कुछ त्रुटि हैंडलिंग और अन्य अच्छी छोटी सुविधाओं मिलता है, आप beforeSend के माध्यम से एक लोडिंग स्पिनर जोड़ सकता है, और पूर्ण के माध्यम से इसे हटाने :)

संपादित करें: नीचे एक साथ त्रुटि फ़ंक्शन बदलें, कि हमें क्या समस्या :)

error: function (jqXHR, textStatus, errorThrown) { 
    console.log(jqXHR); 
    console.log(textStatus); 
    console.log(errorThrown); 
} 
+0

मेरा कंसोल मुझे निम्न बताता है: लोड हो रहा है त्रुटि ऑब्जेक्ट {readyState = 4, status = 200, statusText = "सफलता "} सभी कार्यों को समाप्त किया गया - नेटवर्क मेनू अभी भी फ़ाइल लोड करता है, सामग्री और JSON को समझता है ... – Ron

+0

और जेसनलिंट मुझे बताता है कि मेरा JSON मान्य – Ron

+0

है तो यह त्रुटि फ़ंक्शन ठीक चल रहा है, केवल सफलता फ़ंक्शन नहीं? –

0

यह जानने के बजाय $ .getJSON का उपयोग करना बेहतर है अगर आपको पता है कि प्रतिक्रिया जेसन होगी। सांत्वना अब

$.getJSON('http://files.mysite.com/data.json', function(data) { 
console.log(data); 
}); 
+1

प्रकरण Sens है का एक बेहतर विचार देना चाहिए itive! यह '$ .getJSON()' – devnull69

0

jsonp समर्थित नहीं है, here देखना केवल एक्सएमएल, json, स्क्रिप्ट, एचटीएमएल तो json का उपयोग करने के बजाय अगर आप न क्रॉस डोमेन नीति मुद्दा

$.get('http://files.mysite.com/data.json', function(data) { 
    console.log(data); 
}, "json"); 
है काम करना चाहिए
+0

दुर्भाग्य से मेरे पास एक क्रॉस डोमेन पहुंच है ... – Ron

+0

@ उस मामले में रॉन, $ .ajax का उपयोग करें: "get", jsonp AJAX विधि में समर्थित है :) भी, यह पोस्ट मदद करेगा http://devlog.info/2010/03/10/cross-domain-ajax/ –

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