解決跨網站XMLHttp請求的一個變通方法
來源:互聯網
上載者:User
xml|解決|請求|網站 使用者在打了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 預設設定下均沒問題。