2012-12-06 14 views
6

मैं यहां एक स्थानीय सर्वर में होस्ट किया गया JSON प्राप्त करने का प्रयास कर रहा हूं, लेकिन किसी कारण से यह काम नहीं करता है। यदि मैं ब्राउज़र पर अपना यूआरएल हिट करता हूं तो यह जेसन सही ढंग से देता है और यदि मैं एक और यूआरएल का उपयोग करता हूं, तो मुझे कुछ डेटा मिलता है।AJAX अनुरोध त्रुटि को डीबग कैसे करें?

मेरी मूल getJSON विधि:

getJSON:

$.getJSON(url, 

        function(data) { 
         console.log('got something'); 
         alert(data);  

        }); 

अब मैं वास्तव में क्या गलत है देखना चाहता हूँ। मैंने इसे अजाक्स अनुरोध के रूप में फिर से लिखा है, और मेरी त्रुटि कॉलबैक jqxhr पर मुझे बहुत सी चीजें मिलती हैं जिन्हें मैं समझ नहीं पा रहा हूं। क्या मुझे इस त्रुटि के बारे में अधिक जानकारी मिल सकती है?

TextStatus मूल्य है "error"

errorThrownnull

$.ajax({ 
        url: url, 
        dataType: 'json', 
        success: function(data) { 
         console.log('got something'); 
         alert(data);  
         }, 
       error: function(jqxhr,textStatus,errorThrown) 
        { 
         console.log(jqxhr); 
          console.log(textStatus); 
          console.log(errorThrown);        

          for (key in jqxhr) 
           alert(key + ":" + jqxhr[key])                 
          for (key2 in textStatus) 
           alert(key + ":" + textStatus[key]) 
          for (key3 in errorThrown) 
           alert(key + ":" + errorThrown[key]) 

        //<--- All those logs/alerts, don't say anything helpful, how can I understand what error is going on? ----> 

       }}); 

अंतिम है, json मैं वापस पाने के लिए है

[{"message": "login failed"}] 

माना जाता रहा हूँ और मैं फ़ायरबग उपयोग नहीं कर सकते, क्रोम कंसोल, या किसी अन्य देव उपकरण क्योंकि यह एक मोबाइल ऐप है, जिसे फोनगैप का उपयोग करके विकसित किया गया है!

+0

क्या आपके वर्तमान पृष्ठ के समान डोमेन, सबडोमेन और प्रोटोकॉल पर यूआरएल है? – devnull69

+0

फ़ायरबग या क्रोम के डेवलपर टूल का उपयोग करें और नेटवर्क और एक्सएचआर पर क्लिक करके आप यूआरएल –

+0

से प्रतिक्रिया देख सकते हैं क्या आपने फायरबग/फिडलर/क्रोम देव टूल के नेटवर्क टैब से जांच की है कि प्रतिक्रिया कोड और टेक्स्ट क्या था? –

उत्तर

6

मैं के लिए जवाब में मेरी टिप्पणी डाल कर रहा हूँ में सभी प्रमुख मुद्रित करने के लिए आरएम, यह आपकी समस्या का समाधान नहीं है लेकिन यह jQuery अजाक्स के साथ विभिन्न रिटर्न समस्याओं का निवारण करने का एक अच्छा तरीका है।

जब आप इस मामले में dataType: 'json' में किसी निश्चित डेटाटाइप का अनुरोध कर रहे हैं तो आप एक विशिष्ट प्रकार के डेटा का अनुरोध कर रहे हैं। यदि वह विशिष्ट डेटा टाइप वापस नहीं किया जाता है तो यह त्रुटि फ़ंक्शन को पास कर देगा।

यदि आपका त्रुटि संदेश ऐसी जानकारी प्रदान नहीं कर रहा है जो आपकी समस्या की व्याख्या करेगा तो डेटा टाइप करने का प्रयास करें जो अधिक अनुकूल है। इस तरह आप देख सकते हैं कि आपका अनुरोध वास्तव में क्या लौट रहा है। यदि आपके अनुरोधित डेटा के अलावा इसका डेटा टाइप करें तो यह आपका मुद्दा है और आप इसे वहां से बाहर कर सकते हैं।

डेटा टाइप html या text आपको अनुरोधित यूआरएल से लौटाए गए सटीक डेटा देने के लिए बहुत खुलेगा और आप वहां से अपने मुद्दों को हल कर सकते हैं।

उम्मीद है कि यह थोड़ा सा मदद करता है।

+0

यह वास्तव में मेरी समस्या हल! उसके लिए धन्यवाद! – caiocpricci2

+0

खुशी हुई यह मदद की :) – Kodemon

1

jqxhr - XrayWrapper
textStatus - Https प्रतिसाद स्थिति के पाठ प्रतिनिधित्व (। उदाहरण के लिए सफलता, त्रुटि)
errorThrown का प्रतिनिधित्व करता है - XMLHttpRequest

jqxhr.status - HTTP प्रतिक्रिया कोड देता है जैसे 200, 404, 500 इतने पर .. इस कोड स्निपेट

उपयोग json वस्तु

var output = ''; 
for (property in object) { 
    output += property + ': ' + object[property]+'; '; 
} 
console.log(output); 
संबंधित मुद्दे