मैं एक कुकी मूल्य के रूप में एक जावास्क्रिप्ट वस्तु स्टोर करने के लिए JQuery.Cookie उपयोग कर रहा हूँ:कुकी
var refinerData = {};
// Read in the current cookie if it exists:
if ($.cookie('RefinerData') != null) {
refinerData = JSON.parse($.cookie('RefinerData'));
}
// Set new values based on the category and filter passed in
switch(category)
{
case "topic":
refinerData.Topic = filterVal;
break;
case "class":
refinerData.ClassName = filterVal;
break;
case "loc":
refinerData.Location = filterVal;
break;
}
// Save the cookie:
$.cookie('RefinerData', JSON.stringify(refinerData), { expires: 1, path: '/' });
जब मैं फ़ायरबग में डिबग, कुकी मूल्य के मूल्य स्वरूपित किया जा रहा है सही ढंग से:
{ "विषय": "रोग बचाव और प्रबंधन", "स्थान": "हैचरी हिल क्लिनिक", "classname": "मैं मधुमेह है, मैं क्या खा सकते हैं"}
मैं मैं सी # में एक शेयरपॉइंट वेब भाग लिख रहा हूं जो कुकी को पढ़ता है और इसे पार करता है:
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["RefinerData"];
if (cookie != null)
{
string val = cookie.Value;
// Deserialize JSON cookie:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var refiners = serializer.Deserialize<Refiners>(cookie.Value);
output.AppendLine("Deserialized Topic = " + refiners.Topic);
output.AppendLine("Cookie exists: " + val);
}
}
मैं करने के लिए serializing के लिए एक रिफाइनर वर्ग है:
public class Refiners
{
public string Topic { get; set; }
public string ClassName { get; set; }
public string Location { get; set; }
}
हालांकि, इस कोड एक "अमान्य JSON आदिम" त्रुटि फेंकता है। मैं यह नहीं समझ सकता कि यह क्यों काम नहीं कर रहा है। एक संभावना यह है कि यह कुकी को सही ढंग से नहीं पढ़ रहा है। जब मैं कुकी के मूल्य को स्ट्रिंग के रूप में प्रिंट करता हूं, तो मुझे मिलता है:
% 7 बी% 22 टोपी%%% 3%% 22%% 20% 2%% 20%% 20% 2%% 22 क्लास% 22% 3 ए% 22 चाइल्डबर्थ% 20 % 26% 20Parenting% 202,013% 22% 2C% 22Location% 22% 3 ए% 22GHC% 20East% 20Clinic% 22% 7 दिन
हाँ धन्यवाद! वह काम किया। मुझे सर्वर.उरल डीकोड को अपने शेयर प्वाइंट वेबपार्ट के बाद से थोड़ा सा समायोजन करना पड़ा, लेकिन यह आश्चर्यजनक रूप से काम करता था: var refiners = serializer.Deserialize (HttpContext.Current.Server.UrlDecode (cookie.Value)); –
user1231748
@ user1231748 बेशक, मुझे आपको स्थिर संदर्भ, मेरे बुरे तक पहुंचने के लिए वह विवरण देना चाहिए था। खुशी है कि आप इसे जा रहे हैं। –