2012-07-09 6 views
5

मुझे jQuery AJAX प्रतिक्रिया में JSON तारों को पार्स करने का प्रयास करते समय एक अजीब समस्या का सामना करना पड़ रहा है। यहाँ मेरी कोड है:फ़ायरफ़ॉक्स jQuery AJAX प्रतिक्रिया में JSON स्ट्रिंग को पार्स नहीं कर सकता

$.ajax({ 
    type: "POST", 
    url: "Save", 
    data: { 
     expiry: expiry, 
     settings: settings 
    } 
}).done(function (msg) { 
    alert(msg); 
    var obj = jQuery.parseJSON(msg); 
    if (obj.status == "done") { 
     window.location = obj.redirect; 
    } 
}); 

आईई, क्रोम, और सफारी पर, मैं चेतावनी में JSON स्ट्रिंग हो रही है, लेकिन Firefox पर, मैं चेतावनी में

[obj XMLDocument]

हो रही है।

यहाँ एफएफ सांत्वना है:

enter image description here

obj अशक्त है, लेकिन मैं प्रतिक्रिया JSON स्ट्रिंग कंसोल में पाठ विशेषता के अंतर्गत इस व्यवहार के लिए

responses=Object { xml=document, text="{"status":"done","redir...ippetImage\/s\/6abb68"} 

किसी भी कारण देख सकते हैं ?

उत्तर

5

समस्या सर्वलेट पक्ष पर थी। मुझे इसे काम करने के लिए सामग्री टाइप करना था।

response.setContentType("text/JSON"); 
1

यह मान्य JSON स्ट्रिंग नहीं है। एक JSON स्ट्रिंग, सभी उद्देश्यों और उद्देश्यों के लिए, जेएस में असाइनमेंट के दाएं हाथ की तरफ है।

उदा

var x = 7; 
     ^
var y = [1,2,3]; 
     ^^^^^^^ 
var z = {a:'b', c: 'd'}; 
     ^^^^^^^^^^^^^^^ 

भागों ^ ने संकेत दिया है, तो आप परिवर्तित x/y/z JSON तार को वार्स आप प्राप्त होता क्या के अनुरूप हैं।

यदि आप जेएस असाइनमेंट के रूप में अपनी जेसन स्ट्रिंग नहीं लिख सकते हैं, उदा।

var x = ...json_string_here...; 

तो यह मान्य JSON नहीं है। आपका स्निपेट नीचे उबलता है:

var x = responses=Object { .... } 

जो वाक्यविन्यास त्रुटि है।

+0

तो यह अन्य ब्राउज़रों पर ठीक काम क्यों कर रहा है? – JAVAGeek

+0

संयोग शायद। तथ्य यह है कि यह अन्य ब्राउज़रों पर काम करता है इसका मतलब यह नहीं है कि यह उचित JSoN है। – WhyNotHugo

+0

'{" स्थिति ":" किया गया "," पुनर्निर्देशित करें ":" some_url "} 'इस जेसन स्ट्रिंग के साथ उनकी कोई समस्या है? – JAVAGeek

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