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();
作者:ゞ修ζ止符℡_R
出处:http://www.cnblogs.com/lollipop/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过394406480@qq.com 联系我,非常感谢。