当前位置: 代码迷 >> ASP.NET >> 怎么解决AJAX跨域的有关问题?(跨域Cookie读取)
  详细解决方案

怎么解决AJAX跨域的有关问题?(跨域Cookie读取)

热度:9465   发布时间:2013-02-25 00:00:00.0
如何解决AJAX跨域的问题?(跨域Cookie读取)
之前发了一个贴,http://topic.csdn.net/u/20091214/09/2ddb3ead-2891-4c6d-93bf-ae2110b4b109
我要做的是一个跨域的读取Cookie的操作,www.bbb.com\test2.aspx调用www.aaa.com\的test1.aspx返回www.aaa.com的Cookie.
本是想用GetResponse()来做,但后来发现这样取得的Cookie是null.
所以只能在页面用AJAX的方式来调用。但写完后出现了AJAX跨域无法访问的问题。
希望大家帮助解决一下。代码如下:
www.aaa.com\test1.aspx.cs:
C# code
 protected void Page_Load(object sender, EventArgs e)    {                     HttpCookie cookie = Request.Cookies["hello"];        if ((cookie != null))        {            Label1.Text = cookie.Value;            TextBox1.Text = cookie.Value;            //Response.ContentType = "text/HTML";            Response.Write(cookie.Value);            Response.End();        }        else        {            Response.Write("no Cookie");            Response.End();        }    }
 

www.aaa.com\test2.aspx:
JScript code
    <script language="JavaScript">            var xmlHttp ;         function createXMLHttpRequest()         {             if(window.ActiveXObject)             {                 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");             }             else if(window.XMLHttpRequest) {                 xmlHttp = new XMLHttpRequest();             }         }                function doPostBack()         {           var url = "http://www.aaa.com/test1.aspx";                   createXMLHttpRequest() ;             xmlHttp.open("GET",url,true);                                    xmlHttp.onReadyStatechange = showCallBack;                           xmlHttp.send(null);         }         //回调函数         function showCallBack()         {             if(xmlHttp.readyState==4)             {                        if(xmlHttp.status==200) {                    success();                 }             }         }         //解析xml         function  success()         {             var responseXml;             responseXml = xmlHttp.responseXML;                      var text= xmlHttp.responseText;                 if(text!=null&&text.length>0)             {                alert(text);            }             else             {                 info = xmlHttp.responseText;                 alert(info);             }         }     </script> 



------解决方案--------------------------------------------------------
帮顶学习
------解决方案--------------------------------------------------------
本地做个代理或者用jquery.的$.getjson(),可以解决ajax跨越.
------解决方案--------------------------------------------------------
学习了 。。。来看看
------解决方案--------------------------------------------------------
楼主,试试这个~
<script type="text/javascript" src="www.aaa.com\test1.aspx"> </script>
------解决方案--------------------------------------------------------
这个似乎和单点登录很像。
不过单点登录是写cookie
你这个是读cookie
我还没见到可以跨域读取cookie的法子
期待高人的解决。

------解决方案--------------------------------------------------------
帮顶。
------解决方案--------------------------------------------------------
你跨域把cookies存进来, 你在你原来网站就可以正常读取这个cookie了 !
------解决方案--------------------------------------------------------
你把电脑中的cookie 都删除了. 然后 再执行一下 ,找到你这个网站的cookie, 看有没写到文件里面去. 
 我以前测试的时候是成功的. 
cookie.Domain = ".test2.com";
 这句要加上去的. 这是指定域名下生成cookie
------解决方案--------------------------------------------------------
  相关解决方案