=波波日志 > JavaScript/Ajax > FireFox下端口不一致导致跨域=
FireFox下端口不一致导致跨域
在Firefox下,如果url路径带有端口号,而ajax对象访问的路径为绝对路径并且端口号不一样时,会出现
uncaught exception: (1? XMLHttpRequest.open ?CP 3
的错误,这个是因为端口号不一致时导致出现的跨域错误。而IE下不会因为请求的端口号不一致出现跨域的问题。
其实出现端口号不一致的错误实在是微乎其微,有谁会一个网站开放两个端口号,浏览器访问时使用一个,ajax对象请求又使用另一个呢??这不是找罪受吗,还得处理跨域的问题。
当ajax出现端口跨域的问题时,Firefox下哪怕设置了document.domain也解决不了跨域的问题,要想Firefox下不出现端口跨域问题,可以使用下面两种比较简单的办法
1)ajax只能使用相同的端口号
2)使用相对路径,而不是使用绝对路径
可以保存下面的代码,自己测试下即可
x.html
+展开
-JavaScript
document.domain="192.168.1.68";//设置domain在Firefox下也解决不了端口跨域 var xhr=window.ActiveXObject?new ActiveXObject("microsoft.xmlhttp"):new XMLHttpRequest(); //=====================================
//相对路径,不出现跨域问题 xhr.open("get","x.html?_dc="+new Date().getTime(),true);
//端口不一致,Firefox下跨域出错
//xhr.open("get","http://192.168.1.68:7070/x.html?_dc="+new Date().getTime(),true);
//端口一致,不出现跨域问题 //xhr.open("get","http://192.168.1.68:8080/x.html?_dc="+new Date().getTime(),true);
//===================================== xhr.onreadystatechange=function(){if(xhr.readyState==4)alert(xhr.responseText);} xhr.send(null);
建立一个网站,打开8080端口和7070端口,浏览器通过8080端口访问http://192.168.1.68:8080/x.html页面,修改//=====================================中的代码,刷新查看效果。
相关ajax跨域解决方案
类别:JavaScript/Ajax 作者:波波 日期:2010-03-04 【评论:0】
暂时没有评论!
发表留言
百度赞助
同类热门博文
- ·AJAX跨域问题解决办..
- ·ajax问题总结
- ·jQuery dataType指定..
- ·ajax+asp.net+mssql..
- ·ajax无刷新上传文件..
- ·ajax对象abort方法
- ·JavaScript代码,变..
- ·fckeditor编辑器在F..
博格Tag
- flash/flex/fcs/AIR(752)
- Asp.Net/C#/WCF(595)
- 操作系统及应用软件(376)
- JavaScript/Ajax(330)
- SQL及数据库(134)
- 黑客技术(115)
- Asp/VBScript(111)
- HTML/WML/CSS兼容/XML(102)
- PHP/apache/Perl(96)
- 网站排名及优化(92)
- 其他(75)
- 个人日志(66)
- lucene.net/分词技术(33)
- 计算机网络(26)
- 机械重工(26)
- C#设计模式(24)
- Google Maps开发(17)
- 日语学习(15)
- Canvas/VML/SVG(13)
- linux(11)
- 游戏开发(8)
- 正则表达式(5)
- Jsp/Java(4)
最新博文
- ·javascript实现html..
- ·Javascript风格要素..
- ·Javascript风格要素
- ·动态加载JavaScript
- ·JavaScript陷阱
- ·ajax技巧
- ·IE对CSS样式表的限制..
- ·什么是Javascript匿..
随机博文
