阅读:6993回复:11
[求助]FireFox下用XMLHttpRequest()的问题
错误: uncaught exception: (¹Õ XMLHttpRequest.open &CP
³ 代码如下 var xmlHttp=new XMLHttpRequest(); var urlstr="http://community.csdn.net/expert/deeptree/rooms/3/list.xml"; xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { alert("载入成功"); } }; xmlHttp.open("GET",urlstr,true); xmlHttp.send(null); 后来我加入了 netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 在本机浏览时就没问题,但上传后浏览还是会出错,请问该怎么解决?或者有什么其他办法能绕道实现? |
|
1楼#
发布于:2005-07-29 23:15
不懂,楼下
|
|
2楼#
发布于:2005-07-29 23:15
安全问题。
firefox中xmlhttprequest的实现只允许发送给相同domain的url,连port不一致都不可以。 IE不做限制,是安全漏洞。 |
|
3楼#
发布于:2005-07-29 23:15
虽然这么说,但没办法解决吗?或者有没有间接的办法?
|
|
4楼#
发布于:2005-07-29 23:15
将request放在server端。
否则很容易形成DOS攻击。 比如我在一个主机A页面上加了对另一台主机B的xmlhttpreqeust,那么所有的request都是从客户端发起的,如果有1万个人同时连主机A,就会有针对主机B的一万个httprequest。 如果直接由服务器端发起request,连接就是单一的可控的。 |
|
5楼#
发布于:2005-07-29 23:15
安全问题。 不正确,ie 的 "Microsoft.XMLHTTP" 像一般 js,同样有 cross host 限制。用 ie 试试便知: var url='https://www.firefox.net.cn/newforum/viewtopic.php?t=7732'; //var url='http://www.nba.com/'; var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); try{ xmlhttp.open("HEAD",url,true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { alert('done'); } } xmlhttp.send(null); } catch(e){ alert('failed'); } |
|
|
6楼#
发布于:2005-07-29 23:15
abc@home: 以前是不限制的. 如果现在fix了,就是我outdate了. |
|
7楼#
发布于:2005-07-29 23:15
不,IE里没有限制,我用IE6
只要将上面代码中的 var xmlHttp=new XMLHttpRequest(); 换成IE的ActiveX,就能运行。 |
|
8楼#
发布于:2005-07-29 23:15
好像有些扩展,比如Forecastfox就是调用远程服务器的XML来显示天气信息的。为什么这个就行呢?
扩展一般也是用到JS的吧? |
|
9楼#
发布于:2005-07-29 23:15
Minisheep:不,IE里没有限制,我用IE6 除非你在"community.csdn.net"域内,否则不可能在 ie6 执行 (之前的不清楚)。你试试在这里能不能执行: <script language="JavaScript"> var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); var urlstr="http://community.csdn.net/expert/deeptree/rooms/3/list.xml"; xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { alert("载入成功"); } }; xmlHttp.open("GET",urlstr,true); xmlHttp.send(null); </script> |
|
|
10楼#
发布于:2005-07-29 23:15
|
|
|
11楼#
发布于:2005-07-29 23:15
对,chrome中的javascript和网页中的javascript是运行在不同的context中的,对security的标准也不同。
|
|