用戶在打了IE的最新補丁后,IE默認配置下,使用 XMLHttp 將無法跨站點訪問,比如在 http://community.csdn.net/ 的頁面就無法訪問 http://message.csdn.net/ 的頁面。會報如下錯誤:
---------------------------
錯誤
---------------------------
出現了運行時間錯誤。
是否要進行調試?
行: 49
錯誤: 拒絕訪問。
---------------------------
是(Y) 否(N)
---------------------------
解決方法之一:
原理,使用下面的方式調用腳本,是可以跨網站的:
<script id=message language=javascript src="******************"></script>
于是乎,我們可以用下面的代碼方式實現跨網站的腳本調用。進而變通的實現 XMLHttp 所無法跨網站的調用。
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);
這個腳本要求被調用方,返回的是 JS 腳本。你可以在調用方事先寫一些函數,然后被調用返回這些函數的調用。
以上方法在最前版本的 IE、FireFox 默認設置下均沒問題。。
新聞熱點
疑難解答