ASP.NETがjsに書かれたクッキーを入手できない解決方法
8453 ワード
今晩javascriptを使ってルートのcookieを設定して、それからASP.NETを使ってこのcookie値を取得して、ASP.NETがJS設定のcookie値を取得できないことを発見して、本当に気がふさいで、以下はJSがCookieを書くコードです:
Code
以下はASP.NET読み取りクッキーコードです.
Code
ここでASP.NETはUTF-8符号化を使用してJS書き込みクッキーの値を復号します.そうしないと、取ったクッキーが少し違います.
次のコードがASP.NETでjsが書いたクッキーが手に入らないということですが、どうすればいいのでしょうか.焦らないでください.次は解決方法です.
jsコードを変更し直します.次のようにします.
Code
[
path=/を1つ追加すればいいです.簡単です.
ここでCookieのPath属性を設定し、jsとASP.NETのCookieに対する操作が相互作用するようにクライアントとサーバ側で同時にPath="/"属性を設定しなければならない!もう一つは符号化の問題であり、ここでJSの符号化はencodeURIがASP.NETに対応するServer.URLEncodeである.
作者:dodo
原文:http://www.xueit.com/html/2009-12-06/21-984180469828.html
本文の著作権は著者と学IT網に共有され、転載を歓迎するが、著者の同意を得ずにこの声明を保留し、原文のリンクを保留しなければならない.そうしないと、法律責任を追及する権利を保留する.
Code
//
cookies
function
setCookie(name,value) { document.cookie
=
name
"
=
"
escape (value)
"
;
"
;
//
cookie
}
//
JS cookie
setCookie(
"
fromUrl
"
,document.referrer);
以下はASP.NET読み取りクッキーコードです.
Code
///
<summary>
///
Cookies
///
</summary>
///
<param name="str"></param>
///
<returns></returns>
public
string
GetCookies(
string
key) {
if
(System.Web.HttpContext.Current.Request.Cookies[key]
!=
null
) {
string
_cstr
=
System.Web.HttpContext.Current.Request.Cookies[key].Value.ToString(); Encoding stre
=
Encoding.GetEncoding(
"
UTF-8
"
);
return
System.Web.HttpUtility.UrlDecode(_cstr, stre); }
else
{
return
string
.Empty; } }
//
cookie
string
referer
=
GetCookies(
"
fromUrl
"
);
ここでASP.NETはUTF-8符号化を使用してJS書き込みクッキーの値を復号します.そうしないと、取ったクッキーが少し違います.
次のコードがASP.NETでjsが書いたクッキーが手に入らないということですが、どうすればいいのでしょうか.焦らないでください.次は解決方法です.
jsコードを変更し直します.次のようにします.
Code
[
//
cookies
function
setCookie(name,value) { document.cookie
=
name
"
=
"
escape (value)
"
;path=/
"
;
//
cookie
}
path=/を1つ追加すればいいです.簡単です.
ここでCookieのPath属性を設定し、jsとASP.NETのCookieに対する操作が相互作用するようにクライアントとサーバ側で同時にPath="/"属性を設定しなければならない!もう一つは符号化の問題であり、ここでJSの符号化はencodeURIがASP.NETに対応するServer.URLEncodeである.
作者:dodo
原文:http://www.xueit.com/html/2009-12-06/21-984180469828.html
本文の著作権は著者と学IT網に共有され、転載を歓迎するが、著者の同意を得ずにこの声明を保留し、原文のリンクを保留しなければならない.そうしないと、法律責任を追及する権利を保留する.