All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
采用AJAX提高网站程序的带宽性能详解_[AJAX教程]
ASP.NET,2.0实现防止同一用户同时登陆_.net资料_编程技术
php下js效果调用右侧小图左侧放大显示_php资料_编程技术
ASP.NET2.0的新特性
asp.net:将多次查询的数据填充到同一数据源_[Asp.Net教程]
ASP.NET,ViewState,初探_[Asp.Net教程]
ASP.NET密码强度验证代码实例_[Asp.Net教程]
用PHP对GB编码到UTF-8编码的动态转换_php资料_编程技术
PHPUnit袖珍指南之命令行测试工具_[PHP教程]
sql,server,2005中新增的bulk功能_[SQL,Server教程]
Reading number is top 10 pictures
美丽的风景--让你目瞪口呆
Discharge accidentally Actresses by the breast4
美女当网吧管理员的悲剧
男人巳快沦落成动物了
男人们都在想什么
XuRe xuan cool and refreshing photoes1
中国女孩大胆自拍,显露完美身材
中国文革时期的色情图片1
30 beautiful school beauty6
Summer is most suitable for young people to travel in China8
Download software ranking
Be there or be square
Kung fu panda - the secret of the teacher
VC++6.0简体中文版
Ashlynn Video2
WebService在.NET中的实战应用教学视频 → 第4集
Sora aoi, the nurse, uniform ,nursing assistant
The hero
Tram sex maniac 2 (H) rar bag5
Boxer's Top ten classic battle8
C语言教程TXT
归海一刀 published in(发表于) 2014/1/30 1:13:52 Edit(编辑)
解决AJAX的跨浏览器问题_[Asp.Net教程]

解决AJAX的跨浏览器问题_[Asp.Net教程]

解决AJAX的跨浏览器问题_[Asp.Net教程]


一、解决在firefox中无法跨域访问的问题

AJAX从本质上讲就是命名用XMLHttpRequest组件来向服务端发送HTTP请求,请接收相应信息。至于成功接收到响应信息后的操作,就和普通的Web客户端程序类似了(一般用DOM将信息加到HTML组件中)。但问题就发生在了XMLHttpRequest组件上。虽然在大多数浏览器中(包括IE、Firefox等)都叫这个名子。使用方法也类似。但在进行某些操作时却有不同的效果。
就拿跨域访问的问题来说。让我们先看看如下的html中的javascript代码:
test.html




设计家园 <A href=""></A>






onclick="getServiceText()" />



如果在IE中访问上面的html文件,url如下:
http://localhost:8080/test.html
会弹出一个对话框,大概意思是说您已经跨域访问了,可能存在风险,是否继续。如果继续执行的话,仍然可以访问http://www.blogjava.net。但是在firefox中却更本无法访问其它域的url,并且会抛出“调用方法 XMLHttpRequest.open 时权限不足”异常。解决的方法一般有两种,一种是修改firefox的设置,在firefox的地址栏中输入“about:config”,并找到signed.applets.codebase_principal_support,将其设为true。如图1所示。



图1
但这种方法经过实现,仍然无法访问其他域的url,不知是不是新版的firefox把这个给屏蔽了。就算这种方法可行,也尽量不使用这种需要配置firefox的方法,而要使用编程的方法,在访问其它域之前,可以使用如下代码打开权限:


try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
catch (exception)
{
alert(exception);
}

要注意的是,上面的代码只能用在firefox中,因此,要将其放到只有firefox才能执行到的代码块中,如在下面的块中:


if(window.XMLHttpRequest) // firefox
{
try
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}
catch (exception)
{
alert(exception);
}
}



不能将上面的代码放到getXMLHTTPRequest中,应放到getServiceText中。
注:如果test.html在通过web服务器访问,而是按着访问本地文件时访问test.html时,在IE中不会出现上述的提示对话框,而是直接就可以访问其他的域。

二、其他的跨浏览器问题

不同浏览器的XMLHttpRequest虽然接口一样,但在不同浏览器中调用XMLHttpRequest的方法和属性的效果不同。如send方法,在IE中可以不传参数,如myRequest.send();仍然可以正常工作,而在firefox中,必须为send方法传一个参数,也就是说,在firefox中send方法参数没有默认值,必须为其赋值。为了通用起见,建议所有的send方法都为其赋一个参数值,哪怕是空串。
除了send方法,responseText属性也是一样,在IE中,responseText返回了整个web资源的内容,而在firefox中只返回web资源的第一行。

来源:http://www.cnblogs.com/nokiaguy





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.