Minisheep
小狐狸
小狐狸
  • UID2333
  • 注册日期2005-01-19
  • 最后登录2006-10-23
  • 发帖数80
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:6176回复:11

[求助]FireFox下用XMLHttpRequest()的问题

楼主#
更多 发布于:2005-07-29 23:15
错误: 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");

在本机浏览时就没问题,但上传后浏览还是会出错,请问该怎么解决?或者有什么其他办法能绕道实现?
cnsc
火狐狸
火狐狸
  • UID4708
  • 注册日期2005-04-04
  • 最后登录2014-03-26
  • 发帖数168
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-07-29 23:15
不懂,楼下
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2005-07-29 23:15
安全问题。
firefox中xmlhttprequest的实现只允许发送给相同domain的url,连port不一致都不可以。
IE不做限制,是安全漏洞。
Minisheep
小狐狸
小狐狸
  • UID2333
  • 注册日期2005-01-19
  • 最后登录2006-10-23
  • 发帖数80
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2005-07-29 23:15
虽然这么说,但没办法解决吗?或者有没有间接的办法?
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2005-07-29 23:15
将request放在server端。
否则很容易形成DOS攻击。
比如我在一个主机A页面上加了对另一台主机B的xmlhttpreqeust,那么所有的request都是从客户端发起的,如果有1万个人同时连主机A,就会有针对主机B的一万个httprequest。
如果直接由服务器端发起request,连接就是单一的可控的。
abc@home
千年狐狸
千年狐狸
  • UID6047
  • 注册日期2005-05-16
  • 最后登录2011-01-01
  • 发帖数1681
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
5楼#
发布于:2005-07-29 23:15
安全问题。
...
IE不做限制,是安全漏洞。

不正确,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');
}



WINXP SP2 MAXTHON (UNICODE) PROXOMITRON
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2005-07-29 23:15
abc@home
不正确,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');
}
回到原帖

以前是不限制的.
如果现在fix了,就是我outdate了.
Minisheep
小狐狸
小狐狸
  • UID2333
  • 注册日期2005-01-19
  • 最后登录2006-10-23
  • 发帖数80
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2005-07-29 23:15
不,IE里没有限制,我用IE6
只要将上面代码中的
var xmlHttp=new XMLHttpRequest(); 换成IE的ActiveX,就能运行。
Minisheep
小狐狸
小狐狸
  • UID2333
  • 注册日期2005-01-19
  • 最后登录2006-10-23
  • 发帖数80
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2005-07-29 23:15
好像有些扩展,比如Forecastfox就是调用远程服务器的XML来显示天气信息的。为什么这个就行呢?

扩展一般也是用到JS的吧?
abc@home
千年狐狸
千年狐狸
  • UID6047
  • 注册日期2005-05-16
  • 最后登录2011-01-01
  • 发帖数1681
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
9楼#
发布于:2005-07-29 23:15
Minisheep:不,IE里没有限制,我用IE6
只要将上面代码中的
var xmlHttp=new XMLHttpRequest(); 换成IE的ActiveX,就能运行。
回到原帖

除非你在"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>



WINXP SP2 MAXTHON (UNICODE) PROXOMITRON
abc@home
千年狐狸
千年狐狸
  • UID6047
  • 注册日期2005-05-16
  • 最后登录2011-01-01
  • 发帖数1681
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
10楼#
发布于:2005-07-29 23:15
Minisheep:好像有些扩展,比如Forecastfox就是调用远程服务器的XML来显示天气信息的。为什么这个就行呢?

扩展一般也是用到JS的吧?
回到原帖

扩充可以调用内部功能,绕过一般 js 限制。但这些内部功能不可能给网页调用,否则便会做成 greasemonkey 之前的安全漏洞。



WINXP SP2 MAXTHON (UNICODE) PROXOMITRON
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2005-07-29 23:15
对,chrome中的javascript和网页中的javascript是运行在不同的context中的,对security的标准也不同。
游客

返回顶部