2011-05-26 15 views
5

मैं अपने सर्वर से डेटा पुनर्प्राप्त करने के लिए jQuery की AJAX .get विधि का उपयोग कर रहा हूं। क्रोम में सही काम करता है, लेकिन आईई 9 में यह कुकी हेडर नहीं भेज रहा है और यह ऐप तोड़ता है। कोई विचार क्यों? मैं jQuery .ajax() समारोह काम करने के लिए नहीं मिल सकता हैIE9 में jQuery AJAX अनुरोध कुकी हेडर नहीं भेज रहा है

$.get(this.server + 'rest/photo/' + this.profileId + '/count', function(data) { 
    $('#imageCount').html(data); 
}); 

उत्तर

1

मैं यहाँ एक ही समस्या है,: यहाँ jQuery कोड है।

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 

आप पृष्ठ के शीर्ष पर इस मेटा टैग जोड़ सकते हैं यह काम कर रहा करने के लिए: केवल वैकल्पिक हल मैंने पाया यह है। लेकिन यह एक अच्छा समाधान की तरह महसूस नहीं करता है। मुझे लगता है कि समस्या यह है किआईई 9 में ऑब्जेक्ट अलग है, इसलिए jQuery संबंधित ऑब्जेक्ट नहीं ढूंढ सकता है, इसलिए AJAX ट्रिगर नहीं कर रहा है।

0

मैं आईपी 9 के साथ कई वर्षों बाद ओपी को एक समान मुद्दे में भाग गया, जो दुख की बात है, अभी भी लटक रहा है।

आईई 10 + सहित, मैंने जो भी ब्राउजर की कोशिश की, मेरे बैकएंड में कुकीज़ पास करने के साथ ठीक लग रहा था, लेकिन आईई 9 उन्हें छोड़ देगा। यह कोई फर्क नहीं पड़ता कि कुकीज़ पर कौन से गुण थे। मुख्य पृष्ठ और एपीआई एक ही डोमेन पर थे और कुकीज़ मेल खाते थे, योजनाएं समान थीं। मैं IFRAMES के साथ कुछ भी नहीं कर रहा था, इसलिए P3P 'potato' hack मदद नहीं की।

तो मैंने आईई 9 के बारे में कुछ शोध किया जो कि अलग हो सकता है। This Microsoft post बहुत शिक्षाप्रद था, और सब बातों IE8 और IE9 CORS सुरक्षा संबंधी दोषों को लॉक करने में मदद करने में किया था की रूपरेखा:

  • HTTP (एस) का उपयोग करना चाहिए, और दोनों अंतिमबिंदुओं इसी योजना
  • का उपयोग करना चाहिए का उपयोग करना चाहिए प्राप्त/पोस्ट
  • कोई कस्टम हेडर अनुमति
  • केवल पाठ/सादे सामग्री प्रकार की अनुमति दी
  • अधिक सुरक्षा जोन के प्रति संवेदनशील सेटिंग्स
  • कुकीज़ अनुरोध से निकाल दिया जाएगा,

कुकीज के बारे में आखिरी वस्तु मुझे सोचने लगी, क्या होगा अगर आईई 9 ने सोचा कि मैं एक क्रॉस-साइट अनुरोध कर रहा हूं? यह निश्चित रूप से ऐसा लगता है कि यह ठीक फैशन में गोली मार रहा था। मैंने पहले ही योजना और डोमेन जैसी कुछ स्पष्ट चीजों की जांच की थी, लेकिन शायद मैंने सबकुछ जांच नहीं लिया था।

समाधान? विशेष रूप से, मैं 0 AJ33 लाइब्रेरी के रूप में reqwest का उपयोग कर रहा था। इसमें एक क्रॉस-उत्पत्ति पैरामीटर है, जिसे मैंने किसी कारण से true पर सेट किया था। इसे ठीक से सेट करने के लिए (सही ढंग से) चाल चल रही थी - मेरी सभी कुकीज़ सर्वर द्वारा उठाई गई थीं। तो यह एक गूंगा गलती थी, लेकिन मैंने एक या दो चीज़ सीखी।

उम्मीद है कि यह किसी की मदद करेगा!

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