解决跨站点XMLHttp请求的一个变通方法

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

用户在打了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 默认设置下均没问题。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航