打印本文 打印本文 关闭窗口 关闭窗口
解决跨站点XMLHttp请求的一个变通方法
作者:武汉SEO闵涛  文章来源:敏韬网  点击数914  更新时间:2009/4/23 13:49:12  文章录入:mintao  责任编辑:mintao

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

打印本文 打印本文 关闭窗口 关闭窗口