用xmlhttprequest.open()方法去访问一个外部网络资源。firefox里面我已经加入了
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");但是还是报错
"http://localhost:8080" was denied UniversalBrowserRead privileges是不是有什么必须数字签名的东西?

解决方案 »

  1.   

    js不支持跨域访问,所以ajax也不能跨域访问你需要些一个类做代理,然后ajax反问一下自己的代理类,就可以了。
      

  2.   

    谢谢,因为有些限制原因,我必须要用js写。
    通过action类来代理的话,因为要通过别人的服务器,
    需要认证的。。
      

  3.   


    如果用js的是不可能实现跨域的,这个问题没有办法解决,只能换种方式去解决,就是用URL远程请求然后返回数据给本地ajax。这个其实是一样的,你用js也是一个url请求,只是你把这个url换成本地的action请求,而action利用URL类去远程请求再返回数据给表现层的ajax
      

  4.   

    不能 
    用本地代码,让Ajax调用本地的一个方法,让服务器端去远程连接获得结果,然后返回。 
      

  5.   

    在请教一下,我的理解有点不一样。比如说
    A服务器 B服务器 C服务器
    其中B服务器为认证的服务器。所有从A服务器进出的request都要认证那么你说的两种访问方式
    1,用客户端js打开新画面
    window.open("c服务器的某个地址")2,用A服务器的某个action
    new actionforward("c服务器的某个地址");这两个方式request发出的地方不一样吧。一个是从客户端直接发出不经过A服务器
    另外一个是经过a服务器的。
    我的理解如果有问题,请纠正一下,谢谢
      

  6.   

    是这样的据个例子:
    有三个域名 a.com,b.com  c.com你的ajajx所在页面是 a.com/index.jsp 想去访问c.com/xxxx.do 这样是不能访问的。因为js不能跨域访问。你可以这样处理   a中的ajax----->a.com/remotxxxx.do---->c.com/xxxx.doremotxxxx.do中可以利用URL类  new URL("c.com/xxxx.do")  的方式吧数据请求回来。然后再返回给本地的ajax请求,这样就可以了。不知道你明白了没。呵呵
      

  7.   

    LZ解决这个问题了没有? 我找了好多资料,都说用纯JS不行的,要用代理. 我现在还在找解决办法啊.