kelvlam said:
So should I be doing toLowercase both when setting and getting?
i.e. document.cookie = cookieStr.toLowerCase();
and for my get, I should just set the search parameter to
param.toLowerCase() and then do the string comparison?
I want to elaborate a little bit more of why I'm asking this question
also, and give some precious description of my problem.
The problem is I have no control of how a client browser access my web
site. They could be coming in as "
http://www.testAbc.com/site1", or
they can be coming in as "
http://www.testAbc.com/SiTe1". The site's
Index.htm page then redirect the incoming request, to a internal ISAPI
call on the IIS server.
For example when a client come in from the browser as
"
http://www.testAbc.com/SiTe1", all cookies created will be only be
accessible for pages that contain "
http://www.testAbc.com/SiTe1" in the
window.location property, correct? Since all my pages are generated
dynamically by the ISAPI DLL, the window.location property could be
change without my notice... and if the page somehow got
"
http://www.testAbc.com/site1" stored in the window.location property,
then I won't be able to access the cookie that I intended to.
Sorry for my very broken English. It's really hard to try to explain
technical detail when I have still a fairly limited understanding of
JavaScript. I hope I didn't confuse the original problem...
Much appreciate for the help in advance.
I would like to point out, I've been using these common utilities
function as well, for handling my cookie within the pages. Maybe I can
tweak these utility functions to solve my problem?
<pre>
/**
* Sets a Cookie with the given name and value.
*
* name Name of the cookie
* value Value of the cookie
* [expires] Expiration date of the cookie (default: end of current
session)
* [path] Path where the cookie is valid (default: path of calling
document)
* [domain] Domain where the cookie is valid (default: domain of
calling document)
* [secure] Boolean value indicating if the cookie transmission
requires a secure transmission
*/
function setCookie(name, value, expires, path, domain, secure) {
var cookieStr;
cookieStr = name + "=" + escape(value);
cookieStr += ((expires) ? "; expires=" + expires.toGMTString() : "");
cookieStr += ((path) ? "; path=" + path : "");
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += ((secure) ? "; secure" : "");
document.cookie = cookieStr;
}
/**
* Gets the value of the specified cookie.
*
* name Name of the desired cookie.
*
* Returns a string containing value of specified cookie,
* or null if cookie does not exist.
*/
function getCookie(name) {
var dc = document.cookie;
var prefix = name.toLowerCase() + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
/**
* Deletes the specified cookie.
*
* name name of the cookie
* [path] path of the cookie (must be same as path used to create
cookie)
* [domain] domain of the cookie (must be same as domain used to create
cookie)
*/
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
var cookieStr;
cookieStr = name.toLowerCase() + "=";
cookieStr += ((path) ? "; path=" + path : ""); //defaultPath);
cookieStr += ((domain) ? "; domain=" + domain : "");
cookieStr += "; expires=Thu, 01-Jan-70 00:00:01 GMT";
document.cookie = cookieStr;
}
}
</pre>