`

FireFox中XMLHTTP的跨域访问

    博客分类:
  • JS
阅读更多

  今天做一个从PHP中读取字符串流的程序。使用的是XMLHTTP。是prototype的框架,省的自己再去判断浏览器,分段书写代码。

  但是在Firefox中,遇到了所请求的页面返回空结果的问题。在IE中没有此类问题,只是有一个安全的提示:您可能请求一个不安全的页面。

代码:

 function postNewContact(){
  var form = $('form');
  var url = 'http://localhost/proptype/bbbbb.xml';
  var myAjax = new Ajax.Request(url,{method:'get',
   //parameters: Form.serialize(form),
   onComplete:showResponse});
 }
 function showResponse(originalRequest){
  var xmlDoc = originalRequest.responseXML.documentElement;
  alert(originalRequest.responseText);
  //alert(xmlDoc.getElementsByTagName('c')[0].childNodes[0]);
  var root = xmlDoc.getElementsByTagName('c')[0].childNodes[0].firstChild.nodeValue;
  alert(root);
  //$('mnt').innerHTML =
 }

但是如果访问自己站点上的文件,则没有任何问题。即

var url = 'bbbbb.xml';

才想起之前所做程序都是使用这种相对路径,没有到其他网站上访问过,所以没有遇到过这种问题。
访问正常 。

  查询得知:这是FireFox的一个安全措施,XML禁止跨域访问别的网址的内容。

 搜到的解决方法是

解决的方法一般有两种,

一种是修改firefox的设置,在firefox的地址栏中输入“about:config”,并找到signed.applets.codebase_principal_support,将其设为true

还有就是

使用编程的方法,在访问其它域之前,可以使用如下代码打开权限:

try 

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

    alert(exception); 
}

第二种方法试验多次没有成功。

一般就手动修改FireFox的设置。

还有就是访问本地的文件的时候注意 localhost  和  127.0.0.1  的区别, 如果访问的地址是  localhost  那么url也是localhost     否则就是    127.0.0.1 

分享到:
评论

相关推荐

    xmlhttp

    XMLHTTP对象是微软在Internet Explorer 5中首次引入的,随后被其他浏览器如Firefox、Chrome、Safari和Opera等广泛支持,形成了跨平台的标准。在JavaScript中,通过创建XMLHttpRequest实例,我们可以实现后台与服务器...

    AJax与Jsonp跨域访问问题小结

    而对于FireFox、Opera等其他浏览器,则可以使用XMLHTTPRequest()构造函数来创建XMLHttpRequest对象。 XMLHttpRequest对象提供了多种方法和属性用于与服务器进行交互。它支持GET和POST等HTTP请求方法,并提供了处理...

    xmlHttp对象参考

    XMLHttpRequest最初由Microsoft在Internet Explorer 5中引入,后来被其他浏览器如Firefox、Safari、Chrome等广泛支持,成为了Web标准的一部分。虽然它的名字中包含“XML”,但其实它并不仅限于处理XML数据,也能处理...

    对xmlHttp对象的理解

    - **对于非IE浏览器**,如Firefox、Chrome、Safari等,使用内置的XMLHttpRequest构造函数创建,例如: ```javascript var xmlHttpReq = new XMLHttpRequest(); ``` 3. **XMLHttpRequest的方法和属性** - `open...

    js判断url是否有效的两种方法

    - 对于跨域资源,还需要验证响应头中的`Access-Control-Allow-Origin`字段,以确保当前域名被允许跨域访问该资源。 - 使用更复杂的检测机制,比如基于DNS解析、SSL握手的检测,这些通常需要服务器端配合实现。 在...

    AJAX入门

    在Mozilla、Firefox、Safari、Netscape和IE7中,可以通过`new XMLHttpRequest()`来创建;而在Internet Explorer 5.5、6、7中,则需要使用ActiveXObject。 2. 初始化请求,通过`open()`方法指定请求类型(如GET或POST...

    兼容ie6、ie7、ie8 和FF的本地上传图片预览

    在现代浏览器中,如Chrome、Firefox或Safari,我们可以利用HTML5的`<input type="file">`元素配合`FileReader` API来实时预览用户选择的图片。但在IE6、7和8中,由于不支持这些新特性,我们需要采取不同的策略。 ...

    P3P Header解决Cookie跨域的问题

    特别是现代浏览器如Chrome和Firefox已经不再依赖P3P来处理跨域隐私问题,而是更多地依赖于更严格的同源策略和CORS(跨源资源共享)机制。因此,在实际开发中,开发者应优先考虑使用CORS来实现跨域资源共享,而P3P则...

    asp.net下检测远程URL是否存在的三种方法

    需要注意的是,这种方法仅适用于支持ActiveX的IE浏览器或兼容模式,对于其他现代浏览器,如Chrome、Firefox,需要使用其他方法,如`System.Net.WebClient`或`HttpClient`。 除了以上三种方法,还有其他一些辅助技术...

    AJax 学习笔记一(XMLHTTPRequest对象)

    但在现代浏览器中,可以通过CORS(跨源资源共享)进行跨域访问。 - 错误处理:确保在处理服务器响应时考虑到可能的错误情况,如网络故障、服务器错误等。 - JSON的广泛使用:尽管名称中包含XML,但现代的AJAX请求...

    JS 精确统计网站访问量的实例代码

    在实际应用中,你可能还需要考虑其他因素,比如防止重复计数(例如,用户刷新页面)、区分新老用户、处理跨域访问,以及确保用户隐私的合规性。此外,可以结合服务器端日志分析,以提高统计的准确性和全面性。 ...

    AJAX 初学者的资料

    在所有现代浏览器中,无论是IE、Firefox、Safari还是其他浏览器,都支持XMLHttpRequest对象。在编写跨浏览器的AJAX代码时,通常需要检查浏览器类型来决定创建XMLHttpRequest实例的方式: ```javascript if (window....

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    API全称Application Programming Interface,它是访问和操作对象的规则。而DOM就是一种详细描述HTML/XML文档对象规则的API。它规定了HTML/XML文档对象的命名协定,程序模型,沟通规则等。在XML文档中,我们可以将每...

    JavaScript判断一个URL链接是否有效的实现方法

    这种方法在早期的IE浏览器中有较好的支持,但缺点在于它不适用于非IE内核的浏览器,如Firefox、Chrome等,因为ActiveXObject在这些浏览器中不可用。 第二种解决方案是使用jQuery扩展,具体可以通过下载一个名为...

    js同源策略详解

    而Firefox浏览器则默认不支持跨域的XMLHTTP请求,从而加强了安全性。 为了绕过同源策略,人们想出了各种办法,比如JSON和动态脚本标记的使用。利用动态脚本标记插入的元素是不受同源策略限制的,因此可以通过它来...

    AJAX初体验之上手篇

    // 在Mozilla/Firefox等非IE浏览器中使用此方式 xmlObj = new XMLHttpRequest(); } catch (e) { // 如果失败,尝试在较新的IE中创建 try { xmlObj = new ActiveXObject("MSXML2.XMLHTTP"); } catch (e2) { //...

Global site tag (gtag.js) - Google Analytics