MSXML2.XMLHTTP是否无法获取远程带有Cookies页面中Cookies的数据

lingyun410 2009-02-25 10:00:41
由User.Domain.com登录用户中心,产生Cookies写入到Domain.Com域。则A.Domain.Com、B.Domain.Com都可以直接读取直接获取Domain.Com域中的Cookies
如果使用其它域则无法共享到Domain.Com中用户登录的Cookies
由此我想到是否可以远程来获取用户登录的Cookies数据呢?如Test.Com这个域需要获取用户登录的Cookies数据。在Domain.com域下我创建了一个页面用于获取用户的登录Cookies数据。
页面GetCookies.asp 代码如下:
<%
Response.Write Request.Cookies("User")("Name") '获取用户通过User.Domain.Com登录网站所产生的Cookies数据
%>
当使用直接访问http://Domain.com/GetCookies.asp时可以直接看到用户登录的数据
而我在Test.Com域下使用MSXML2.XMLHTTP则无法看到Request.Cookies("User")("Name")这部分数据!
是因为MSXML2.XMLHTTP的原因么?
远程获取数据的函数代码:
 	Public Function GetRemoteFile(ByVal RemotePath,ByVal CSet)
On Error Resume Next
Dim ObjHttp,ObjStm,StrHead,TempBody

Set ObjStm = CreateObject(ObjStmStr)
ObjStm.Type = 1
ObjStm.Mode = 3
ObjStm.Open

Set ObjHttp=Server.CreateObject(ObjXmlHttpStr)
ObjHttp.Open "Get", RemotePath , False
ObjHttp.send
If ObjHttp.readyState<>4 Then Exit Function
If ObjHttp.Status > 300 Then Exit Function
ObjStm.Write (ObjHttp.responseBody)
Set ObjHttp=Nothing

ObjStm.Position = 0
ObjStm.Type = 2
ObjStm.Charset = Trim(CSet)
GetRemoteFile = ObjStm.ReadText
ObjStm.Close:Set ObjStm = Nothing
Exit Function

End Function
Public Function BytesToBstr(ByVal strBody,ByVal CodeBase)
Dim ObjStm,TempBody
Set ObjStm = Server.CreateObject(ObjStmStr)
With ObjStm
.Type = 1
.Mode =3
.Open
.Write strBody
.Position = 0
.Type = 2
.Charset = CodeBase
End With
TempBody = ObjStm.ReadText
ObjStm.Close:Set ObjStm = nothing
BytesToBstr=TempBody
End Function

...全文
463 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxxlsoft 2010-03-19
  • 打赏
  • 举报
回复
学习学习学习学习学习学习学习学习学习学习
uddwfn521 2009-02-25
  • 打赏
  • 举报
回复
Domain.com a.asp

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>

<%
Response.Write(Request.Cookies("User"));
%>


test.com a.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript" src="jquery-1.3.min.js"></script>
<script type="text/javascript">
$.ajax({
type: "POST",
url: "http://Domain.com/1.asp",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
</script>
</body>
</html>
uddwfn521 2009-02-25
  • 打赏
  • 举报
回复
Domain.com a.asp

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>

<%
Response.Write(Request.Cookies("User"));
%>


test.com a.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript" src="jquery-1.3.min.js"></script>
<script type="text/javascript">
$.ajax({
type: "POST",
url: "http://Domain.com/1.asp",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
</script>
</body>
</html>
uddwfn521 2009-02-25
  • 打赏
  • 举报
回复
Domain.com
下获取cookie 当成字符串写出来
然后在
test.com
下用ajax请求这个页面.
应该是能的到值的
因为对于test.com 来说 你要取的只是一个页面的html代码而已 并非cookie

Domain.com a.asp 输出一段cookie 值

test.com a.html 请求 http://Domain.com/a.asp
lingyun410 2009-02-25
  • 打赏
  • 举报
回复
汗,兄弟那是三个字!~
如果这个不可能,还有什么好办法?我开始的时候不知道他是不能获取Cookies的。想来想去都没有相到再好的办法!~
搬运工865 2009-02-25
  • 打赏
  • 举报
回复
2个字 不可能
lingyun410 2009-02-25
  • 打赏
  • 举报
回复
或者有没有其它好的办法可以解决这个问题?
笨沙发 2009-02-25
  • 打赏
  • 举报
回复
顶上去
uddwfn521 2009-02-25
  • 打赏
  • 举报
回复
bg 等看达人解答
lingyun410 2009-02-25
  • 打赏
  • 举报
回复
在本地的IIS中运行也是没有权限。怪了,我在桌面上直接运行这个静态文件的时候可以获取!~
lingyun410 2009-02-25
  • 打赏
  • 举报
回复
不行呀,没有权限
AJAX不能跨域访问数据吧!~
我开始以为是我自己的AJAX类文件的问题呢。刚刚试了一下JQUERY也是一样,不能获取远程地址的数据。但是我在桌面上运行的HTML好像可以获取?有点不解

这是我的最后一招了,再不行只能放弃了!~
uddwfn521 2009-02-25
  • 打赏
  • 举报
回复
但是这样传重要信息.. 是不是不安全呢? 很容易就被截获了.
uddwfn521 2009-02-25
  • 打赏
  • 举报
回复
其实道理一样的. 我不太懂asp
lingyun410 2009-02-25
  • 打赏
  • 举报
回复
可以把这数据再赋于ASP程序端么?
用 ajax + asp.net 采集文章 试验型的项目。 原先用多线程来采集,但是觉得多线程采集要显示采集进度很麻烦。 后来改为单线程,边采集边显示进度。又发现出现采集错误的时候不方便作停止。 干脆用ajax 加 asp.net 服务端来采集。 发现有点好处,以后作断点续采方便,可以用cookies 记录当前进度。 我已经把采集规则从数据库里面剥离出来,用xml 将就着用,以后再写入数据库里面保存。 ================== 发现低级错误,请自己修改 Ajax.js 文件 // JScript 文件 function AjaxClass() { this.XmlHttp = null; try { this.XmlHttp = new XMLHttpRequest(); } catch (FFError) { try { this.XmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (NewIEError) { try { this.XmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (IEError) { this.XmlHttp = false; } } } if (this.XmlHttp == null) { alert("浏览器不支持AJAX"); return; } this.RequestUrl = ""; this.Method = "get"; this.IsAsyn = true; this.ContentType = "text/html"; this.Content = null; this.ProcessDataEvent = processData; this.StateChangeEvent = handleStateChange; this.SendRequest = function() { this.XmlHttp.onreadystatechange = this.StateChangeEvent; { this.XmlHttp.open(this.Method, this.RequestUrl, this.IsAsyn); if (this.Method.toLowerCase() == "post") { this.XmlHttp.setRequestHeader("Content-Type", this.ContentType); } this.XmlHttp.send(this.Content); } } function handleStateChange() { if (this.XmlHttp.readyState == 4) { if (this.XmlHttp.status == 200) { this.ProcessDataEvent(); } } } function processData() { } }

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧