2012-01-17 12 views
15

मैं आईई 8 का उपयोग कर रहा हूं और मैं यूआरएल पर AJAX अनुरोध भेज रहा हूं जो जेसन के रूप में प्रतिक्रिया भेजता है। ajax सेटअप के लिए jQuery कोड नीचे दिया गया हैआईई 8 फाइल के रूप में जेसन प्रतिक्रिया का इलाज करता है और इसे डाउनलोड करने का प्रयास करता है

$(document).ready(function(){ 
    $.ajax({ 
    url: url_string, 
    dataType: "json", 
    success: function(response){ 
     alert('all is well'); 
    }, 
    error: function(request, status, error){ 
     alert(request); 
     alert(status); 
     alert(error); 
    } 
    }); 
}); 

मुझे यकीन है कि सर्वर JSON उत्तर भेज रहा है हूँ, लेकिन IE8 फ़ाइल के रूप में व्यवहार करता है और डाउनलोड पॉपअप बॉक्स को लाता है। लेकिन एक ही प्रक्रिया एफएफ और क्रोम के लिए ठीक काम करती है। यह अभी भी होता है जब मैं डेटाप्रकार

में jsonjsonp की जगह लेकिन यह हमेशा त्रुटि कॉलबैक विधि में प्रवेश करती है।

मेरा जेसन प्रतिक्रिया शरीर एचटीएमएल टैग के साथ एक स्ट्रिंग के होते हैं।

कोई विचार यह क्यों हो रहा है?

धन्यवाद

+0

आप http प्रतिक्रिया हेडर आप कृपया सर्वर से वापस हो रही है पोस्ट कर सकते हैं: ")

मैं भी एक ब्लॉग पोस्ट को इसके बारे में कुछ और जानकारी के साथ लिखा था? कैप्चर करने के लिए फिडलर (http://www.fiddler2.com/fiddler2/) का उपयोग करें। ओह, अगर वह 'लोकलहोस्ट' पर एक इन-डेवलपमेंट वेबसाइट पर जा रहा है - तो आपको इसे चलाने के बाद होस्ट नाम के रूप में अपने मशीन का नाम या ipv4.fiddler का उपयोग करने के लिए बदलना पड़ सकता है। –

+0

ठीक प्रतिलिपि चिपकाने प्रतिक्रिया हेडर रूप एफएफ रिस्पांस हैडर दिनांक \t मंगल, 17 जनवरी 2012 10:21:48 GMT सर्वर \t अपाचे/2.2.12 (उबंटू) एक्स संचालित-से \t PHP/5.2.10-2ubuntu6 .10 एक्सेस-कंट्रोल-अनुमति-उत्पत्ति ... \t * सामग्री-लंबाई सामग्री-प्रकार \t एप्लिकेशन/जेसन; charset = utf-8 एक्स-कैश \t MISS से एक्स-संचय-लुक स्थानीय होस्ट से \t MISS स्थानीय होस्ट: 3128 वाया \t 1.1 स्थानीय होस्ट: 3128 (व्यंग्य/2.7.STABLE9) कनेक्शन \t रखें जिंदा – Gagan

+0

और यह वह जगह है प्रतिक्रिया शीर्षलेख जो मुझे फिडलर HTTP/1 से मिला है।0 200 ठीक दिनांक: मंगलवार, 17 जनवरी 2012 11:45:41 GMT सर्वर: अपाचे/2.2.12 (उबंटू) एक्स-संचालित-द्वारा: PHP/5.2.10-2ubuntu6.10 एक्सेस-कंट्रोल-अनुमति -ऑर्गिन: * सामग्री-लंबाई: 0 सामग्री-प्रकार: एप्लिकेशन/जेसन; charset = utf-8 एक्स-कैश: MISS से स्थानीय होस्ट एक्स-संचय-लुक: स्थानीय होस्ट से MISS: 3128 वाया: 1.1 स्थानीय होस्ट: 3128 (व्यंग्य/2.7.STABLE9) कनेक्शन: जीवित-रखें – Gagan

उत्तर

10

की मैं एक ही मुद्दा था और सामग्री-प्रकार = सभी आईई अनुरोध (बजाय "application/json के लिए प्रतिक्रिया हेडर में" text/html "की स्थापना करके यह तय http://blog.degree.no/2012/09/jquery-json-ie8ie9-treats-response-as-downloadable-file/

+0

+1 धन्यवाद। 'टेक्स्ट/सादा 'भी काम करता है। ऐसा लगता है कि यह आईई 8 और 9 के लिए समान है। आईई 10 'एप्लिकेशन/जेसन' ग्रोक लगता है। – Gray

+0

यह मेरे में एक रीडायरेक्ट को संकेत देता है। –

0

मैं अपने कोड के url को बदल और JQuery के नवीनतम संस्करण का इस्तेमाल किया और यह मेरे लिए IE8 के भीतर ठीक चलाता

<html> 
<head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
<script> 
    $(document).ready(function() {    
    $.ajax({      
     url: "http://api.flickr.com/services/feeds/[email protected]&lang=en-us&format=json&jsoncallback=?", 
        dataType: "json",      
     success: function(response){       
      alert('all is well');      
      alert($.param(response));     
     },      
     error: function(request, status, error){        
      alert(request);        
      alert(status);        
      alert(error); 
     }   
}); 
}); 
</script> 
</body> 
</html> 

वहाँ एक ज्ञात समस्या इस answer जहां IE8 में विस्तृत रूप है परिणाम सरणी में एक अतिरिक्त कॉमा के साथ समस्या है। इसके लिए प्रतिक्रिया चेतावनी की सामग्री की जांच करें।

+1

आपके उत्तर के लिए धन्यवाद, लेकिन यह मेरी समस्या को हल नहीं कर रहा है। मेरी समस्या यह है कि आईई 8 ने फाइल के रूप में जेसन प्रतिक्रिया क्यों डाउनलोड की। प्रतिक्रिया-शीर्षक की सामग्री-लंबाई 0 है क्योंकि प्रतिक्रिया को फ़ाइल के रूप में माना जाता है। – Gagan

+0

हां, मैंने देखा कि मैंने उत्तर देने के बाद आपकी टिप्पणी में जोड़ा। –

+0

क्या यह कभी हल हो गया है? मुझे एक ही समस्या है ... –

3

जेसन भेजने के आधार पर, आपको इसे माइम प्रकार टेक्स्ट के रूप में भेजना होगा। तो रेल में मुझे यह करना पड़ा।

render :text => my_array.to_json 

इसके बजाय

render :json => my_array 
संबंधित मुद्दे