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

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:浅谈使用XMLHttpRequest与DOM对象
XMLHttpRequest对象 在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象。由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。IE把XMLHttpRequest实现一个Act

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

 

分享:如何了解认识XML
XML被设计用来描述数据,其焦点是数据的内容。 HTML被设计用来显示数据,其焦点是数据的外观。 应该掌握的基础知识: 在您继续学习之前,需要对以下知识有基本的了解: HTML / XHTML JavaScript or VBScript 什么是XML? XML指 可扩展标记语言 (EXtensible M

来源:模板无忧//所属分类:Xml教程/更新时间:2010-02-16
相关Xml教程