2011-04-22 14 views
5

के साथ संगत नहीं है jquery.cookie decodeURIComponent का उपयोग करके मूल्य पुनर्प्राप्त करता है। https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js#L89कुकी के रेल एन्कोडिंग जावास्क्रिप्ट decodeURIComponent

रेल भंडार

@set_cookies.each { |k, v| ::Rack::Utils.set_cookie_header!(headers, k, v) 
if write_cookie?(v) } 

बुला आप देख सकते हैं रैक util प्लस के चिन्ह खाली स्थान के की जगह द्वारा कुकी।

https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L18

अगर मैं जावास्क्रिप्ट का encodeURIComponent का उपयोग तो के लिए कोडित मूल्य 'हैलो दुनिया'

"हैलो% 20world"

हालांकि रेल

के रूप में कुकी मान भंडारण किया जाता है " हैलो + वर्ल्ड "

कौन सही है?

मैं कहां देख सकता हूं कि कुकी मूल्य को संग्रहीत करने के बारे में विनिर्देश क्या कहते हैं।

उत्तर

2

यह सुनिश्चित नहीं है कि यह प्रश्न छोड़ दिया गया है, लेकिन हाल ही में एक ही मुद्दे पर आया है। http://www.ietf.org/rfc/rfc2109.txt मानक कुछ परिभाषाओं या विशेष वर्ण आदि के लिए RFC2068 को संदर्भित करता है:

कुकीज़ RFC2109 में परिभाषित कर रहे हैं http://www.ietf.org/rfc/rfc2068.txt

जहां तक ​​मैं बता सकता हूँ, यह केवल परिभाषित करता है कि आप में आरक्षित वर्णों का उपयोग नहीं कर सकते हैं कुकी मूल्य यह एन्कोडिंग योजना को परिभाषित करने के लिए प्रतीत नहीं होता है जिसका आपको उपयोग करना चाहिए। यानी ठीक है, जब तक आप इसे लगातार करते हैं।

अपने jQuery कुकी कोड में, आप 'कच्चे' विकल्प को निर्दिष्ट कर सकते हैं, जो decodeURIComponent सामान नहीं करेगा, जिससे आप इसे डीकोड कर सकते हैं।

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