用戶在打了IE的最新補(bǔ)丁后,IE默認(rèn)配置下,使用 XMLHttp 將無(wú)法跨站點(diǎn)訪問(wèn),比如在 http://community.csdn.net/ 的頁(yè)面就無(wú)法訪問(wèn) http://message.csdn.net/ 的頁(yè)面。會(huì)報(bào)如下錯(cuò)誤:
---------------------------
錯(cuò)誤
---------------------------
出現(xiàn)了運(yùn)行時(shí)間錯(cuò)誤。
是否要進(jìn)行調(diào)試?
行: 49
錯(cuò)誤: 拒絕訪問(wèn)。
---------------------------
是(Y) 否(N)
---------------------------
解決方法之一:
原理,使用下面的方式調(diào)用腳本,是可以跨網(wǎng)站的:
<script id=message language=javascript src="******************"></script>
于是乎,我們可以用下面的代碼方式實(shí)現(xiàn)跨網(wǎng)站的腳本調(diào)用。進(jìn)而變通的實(shí)現(xiàn) XMLHttp 所無(wú)法跨網(wǎng)站的調(diào)用。
var Url = "http://message.csdn.net/********":
var ScriptName = "CheckUserHasNewMessage";
var head= document.getElementsByTagName("head").item(0);
var old = document.getElementById(ScriptName);
if (old) head.removeChild(old);
var script = document.createElement("SCRIPT");
script.src = Url;
script.defer = true;
script.type = "text/javascript";
script.id = ScriptName;
head.appendChild(script);
這個(gè)腳本要求被調(diào)用方,返回的是 JS 腳本。你可以在調(diào)用方事先寫(xiě)一些函數(shù),然后被調(diào)用返回這些函數(shù)的調(diào)用。
以上方法在最前版本的 IE、FireFox 默認(rèn)設(shè)置下均沒(méi)問(wèn)題。。
新聞熱點(diǎn)
疑難解答
圖片精選