在一項目中由於需要使用JS事件中使用AJAX獲取數據信息,但這其中涉及到跨域取數據的問題。在網上搜了好半天最後發現了ADAJax這樣一個東東,貌似可以解決這樣的問題:
advAJax.get({
url: "http://www.example.com/page.Html",
onSuccess : function(obj) { alert(obj.responseText); }
});
需要先引入:adAJax.JS(可以下面網站下載)
詳細地址:
http://advAJax.anakin.us/index-en.htm
但是這最終還不能解決我的問題,我需要將從其他網站獲取的內容強制轉化為JS可執行腳本:
advAJax.get({
url: "http://www.abc.com/page.Html",
onSuccess : function(obj) { eval(obj.responseText); }
});
這時候問題又出來,在IE中提示有安全警告,然後便不能正確執行了,有些郁悶了,在Firefox中根本都沒有任何反應,通過調試跟蹤都無法執行到onSuccess事件來。
弄了很久,最終決定直接在js腳本中引入url作為JS腳本嵌套執行,這下好像是通關了啊。
var requestUrl='http://www.sample.com/UI/AdMessage/GetAdMessageByKey.ASPx?G&SiteId='+SiteId+'&SiteDomain='+SiteDomain+'&Index='+linkId+'&KeyId='+k.id+'&stamptime=' + new Date().getTime();
LoadAdScript(requestUrl);
function LoadAdScript(script)
{
var adScript=document.getElementById("adScript");
// var adCss=document.getElementById("AdCSS");
if(adScript)
document.body.removeChild(adScript);
// if(adCss) head.removeChild(adCSS);
var l=CreateEl("script");
l.setAttribute("type","text/Javascript");
l.setAttribute("src",script);
l.setAttribute("id","adScript");
document.body.appendChild(l);
}
值得注意的是GetAdMessageByKey.ASPx輸出必須為JS腳本(比如:Response.write("alert('hello my god');");類似文本