2010-06-01 14 views
6

यहां एक है जो मुझे लूप के लिए फेंक रहा है। मैं एक साधारण कुकी सेट करने की कोशिश कर रहा हूं जिसमें एक नाम है: IE8 पर मूल्य जोड़ी। एफएफ पर परीक्षण किया और यह ठीक काम करता है। आईई 8 इसे अवरुद्ध करता रहता है।आईई 8 अवरुद्ध जावास्क्रिप्ट कुकीज़

मैं पी 3 पी सामग्री के बारे में पढ़ सकते हैं और एक बुनियादी पी 3 पी डॉक, कोई त्रुटि आईबीएम उपकरण द्वारा रिपोर्ट बनाई है, और सभी पृष्ठों पर निम्न को शामिल किया है:

<meta http-equiv="P3P" CP="CAO DSP COR PSDa CONi TELi OUR STP COM NAV"><link rel="P3Pv1" href="/w3c/p3p.xml"></link> 

कोड मैं स्थापित करने के लिए कुकी का उपयोग निम्नानुसार:

function setCompatibilityCookie(c_name, value, expiredays) { 
var exdate = new Date(); 
exdate.setDate(exdate.getDate() + expiredays); 
document.cookie= c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toUTCString());} 

कोई विचार क्यों IE8 मुझे इस कुकी को सेट करने से रोकता है?

धन्यवाद, Schalk कि आप getDate(), महीने का वह दिन रिटर्न का उपयोग कर रहे

+1

आप (एक IFRAME में अर्थात) एक "तीसरी पार्टी" दस्तावेज़ से कुकी सेट कर रहे हैं? –

+0

नहीं, यह सिर्फ एक HTML पृष्ठ है। मैंने वास्तव में कोड को एक साधारण HTML पृष्ठ पर अलग कर दिया है जिसमें दो लिंक हैं, जो कुकी सेट करता है और दूसरा जो कुकी मान प्राप्त करता है और इसे पृष्ठ पर प्रिंट करता है। यह फ़ायरफ़ॉक्स में लेकिन IE8 में रूप में अच्छी तरह क्रोम के रूप में कुकी सेट कभी नहीं किया गया है पूरी तरह से काम करता है। – schalkneethling

+0

अब इसे आभासी मशीन में चल रहे आई 6 पर परीक्षण किया गया है और इसे वहां भी अवरुद्ध किया जा रहा है, इसलिए यह कुछ अजीब आईई चीज है। http://pastebin.com/yB8WSDjW – schalkneethling

उत्तर

1

एक समस्या हो सकती है। यदि आपका expiredays बहुत बढ़िया है, तो इसे अगले महीने तक रोल करना चाहिए, लेकिन आईई में यह इस महीने में रह सकता है और तुरंत समाप्त हो रहा है। हो सकता है कि इस प्रयास करें:

function setCompatibilityCookie(c_name, value, expiredays) { 
var exdate = new Date(); 
exdate.setTime(exdate.getTime() + (expiredays * 86400000)); 
document.cookie= c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toUTCString());} 
+0

हाय एन्ड्रेस, सुझाव के लिए धन्यवाद, मैं इसे लेकिन समस्या अभी भी बनी रहती की कोशिश की है: वैसे भी, आप नवीनतम कोड मैं यहाँ का उपयोग कर रहा देख सकते हैं। कृपया फिलिप के प्रश्न पर मेरी टिप्पणी देखें। – schalkneethling

+0

ठीक है, क्रोम 'कुकी' को अवरुद्ध करने का कारण इस समस्या के कारण था http://code.google.com/p/chromium/issues/detail?id=535, आप इसे हल करने के तरीके के बारे में और अधिक पढ़ सकते हैं यहां: http://stackoverflow.com/questions/335244/why-does-chrome-ignore-local-jquery- कुकीज: अब यह केवल आईई 8 है, क्या आश्चर्य है;) – schalkneethling

+0

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

1

मैं जो भी कोई समस्या नहीं के साथ ग्राहक के पक्ष को कुकी सेट करने के लिए उम्र के लिए एक ही कोड का उपयोग किया गया है। मैं निश्चित रूप से कोड के बजाय आईई सेटअप पर जांच करूँगा। आईई में, आपके पास यह कहने की संभावनाओं का एक बड़ा समूह है कि क्या आप कुकीज़ स्वीकार करते हैं या स्रोत के आधार पर नहीं (जैसा कि आपने इसे देखा है)। मैं निश्चित रूप से यहाँ शुरू होगा! गुड लक

2

मैं एक ही समस्या थी और खुदाई क्यों आईई अभ्यस्त मेरी जे एस कुकी को बचाने में बहुत समय बिताया। मेरी पी 3 पी सामान ठीक थी और आईई प्रतिक्रिया कुकीज़ को बचा रहा था, लेकिन जेएस नहीं।

अचानक और सबसे आश्चर्य की बात मैं एचटीएमएल से निम्न पंक्ति को हटाने के द्वारा समाधान नहीं मिला:

< मेटा http-समतुल्य = "सामग्री प्रकार" सामग्री = "text/html; charset = utf-8" />

मुझे पता नहीं क्यों ऐसा होता है, लेकिन है कि मेरी सभी समस्याओं को हल कर सकते है। उम्मीद है कि यह किसी की मदद करता है।

+0

हालांकि अब मुझे विश्वास है कि समस्या विशेष रूप से "charset = utf-8" भाग के कारण थी। – EvilDuck

0

मैं यह अनुभव और प्रतिक्रियाओं में से कुछ यहाँ की कोशिश की, मेरी जारी निकला समाप्ति होने के लिए। मैं इसे 99 99 99 99 999 के लिए सेट कर दूंगा, लेकिन जब मैंने इसे 99 99 999 तक गिरा दिया तो यह काम करता था। ऐसा लगता है IE8 एक समाप्ति पर सीमा (प्रतिभा माइक्रोसॉफ्ट, शुद्ध प्रतिभा: रों) है

0

मैं एक ही स्थिति का सामना करना पड़ा है और समस्या यह है कि ... expiredays IE के लिए ही जैसे कोई कीवर्ड है था। यदि आप expiredays वैरिएबल का नाम whateveryouwant में बदलते हैं, तो यह सभी ब्राउज़रों पर अच्छा काम करता है।

0

मैं भी इस मुद्दे पर में भाग गया, और यह पता चला है कि यह कुकी नाम की लंबाई के साथ करना था। इस मामले में मेरे पास एक कुकी नाम था जो 26 वर्ण था और यह आईई 8 और नीचे के अलावा कुछ भी ठीक काम करता है। मैंने नाम को केवल 10 वर्णों तक छोटा कर दिया और अचानक आईई 8 पूरी तरह से कुकी पढ़ने/लिख रहा था। मुझे लगता है कि यहां एक मनमानी सीमा आईई 8 कुकी नाम के लिए 16 वर्ण है।