谁从AJAX电话中取出了cookie?

时间:2012-09-23 19:54:13

标签: ajax session cookies

当我通过AJAX调用URL时,它读取了哪些cookie?会议也一样。

谁真正运行该线程?它是我的默认系统浏览器,当前的一个,还是其他一些实体?

1 个答案:

答案 0 :(得分:0)

这可能令人困惑,因为这一切都发生在“幕后”。我发现,像任何其他Javascript一样,加载页面的浏览器是运行AJAX代码的浏览器。此外 - 浏览器的相同实例,也可以使用会话。


我已经运行了一些代码来得出这个结论。以下示例在经典ASP中。

首先,我有一个写入这些变量的文件:

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

接下来,一个文件来读取它们(和显示结果):

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

最后,AJAXly的一个文件称它们为:

<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>

在一个浏览器上运行第一个文件,在一个浏览器上运行最后一个文件,第一个文件显示:

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

其余显示:

Cookie is:
Session is:

所以你有它:)