Ajax跨域访问

1  function GetExamDynamicInfo() {

2                 var url = "http://localhost:9966/exam.cbi360.com/ExamDynamic.ashx?op=Exam&spid=" + sid + "&top=5&t=" + new Date().getTime();

3                 _examrequest.open("Get", url, true);

4                 _examrequest.onreadystatechange = ShowExam;

5                 _examrequest.send(null);

6         }

7  

 

  通过使用ajax可以使用异步操作,做到页面局部无刷新的效果。在本地两个项目之间如果说是需要在A项目中通过ajax访问B项目,url传入的是B项目中的要访问的地址,那么在IE中的左下角会有错误警告,提示没有权限访问。如果是在谷歌中则无提示,但获取不到。怎么回事呢?原来js是无法进行跨域访问的,既然用js无法访问,那就用web代理的方式访问吧。

 

 1   function GetExamDynamicInfo() {

 2                 var url = 

 3  send_screquest("Text?url=" + encodeURIComponent("http://localhost:9966/exam.cbi360.com/Handler/ExamDynamic.ashx?op=getExam&spid=" + sid + "&top=5&t=" + new Date().getTime();

 4 );    

 5 //将此url改为当前项目中的代理页面:Text.aspx

 6                 _examrequest.open("Get", url, true);

 7 

 8                 _examrequest.onreadystatechange = ShowExam;

 9                 _examrequest.send(null);

10         }

  通过Text.aspx获取即可,只在.cs页面中写入以下代码即可,可以将页面的信息删掉,留下最上边的一行<%...%>即可

1  string url = HttpUtility.UrlDecode(Request.QueryString["url"]);

2         WebClient myWebClient = new WebClient();

3         byte[] myDataBuffer = myWebClient.DownloadData(url);

4         string data = Encoding.UTF8.GetString(myDataBuffer);

5         Response.Write(data);

6         //Response.End(); 

 

你可能感兴趣的:(AJAX跨域)