日期:2014-05-18  浏览次数:20505 次

如何解决AJAX跨域的问题?(跨域Cookie读取)
之前发了一个贴,http://topic.csdn.net/u/20091214/09/2ddb3ead-2891-4c6d-93bf-ae2110b4b109.html
我要做的是一个跨域的读取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
------解决方案--------------------