0

AJAX 経由で URL を呼び出すと、どの Cookie が読み取られますか? セッションについても同様です。

実際にスレッドを実行しているのは誰ですか? それは私のデフォルトのシステムブラウザですか、現在のものですか、それとも他のエンティティですか?

4

1 に答える 1

0

これはすべて「舞台裏」で行われるため、混乱を招く可能性があります。他の Javascript と同様に、ページをロードするブラウザーが AJAX コードを実行することがわかりました。さらに、ブラウザの同じインスタンス、つまりセッションも使用できます。


この結論に達するために、少しコードを実行しました。次の例は、クラシック ASP のものです。

まず、これらの変数を書き込むファイルが 1 つあります。

Response.Cookies("testing") = "One, Two, Three"
Session("testing") = "Forty One, Forty Two, Forty Three"

次に、それらを読み取る (および結果を表示する) 1 つのファイル:

Cookie is: 
<%
Response.Write Request.Cookies("testing")
%>
<br>
Session is:
<%
Response.Write Session("testing")
%>

最後に、それらを AJAXly で呼び出す 1 つのファイル:

<div id="result"></div>
<script type="text/javascript">
//Different browsers initiate ajax differently
try {var oXH = eval("new Active"+"X"+"Object('MSXML2.XMLHTTP')");}
catch(e) {var oXH = new XMLHttpRequest();}

//Call page that reads the cookie
oXH.open("GET","/testCookie.asp",true);
oXH.onreadystatechange = function(){
    if ((oXH.readyState != 4)||(oXH.status != 200))
        return true;
    else
    {
        document.getElementById("result").innerHTML = oXH.responseText;
    }
};
oXH.send(null);
</script>

最初のファイルを 1 つのブラウザーで実行し、最後のファイルをいくつかのブラウザーで実行すると、最初のファイルは次のように表示されます。

Cookie is: One, Two, Three
Session is: Forty One, Forty Two, Forty Three

残りの表示:

Cookie is:
Session is:

それで、あなたはそれを持っています:)

于 2012-09-23T19:54:13.067 に答える