location.origin不兼容IE8解决方案
最近项目中遇到一个问题,在ajax跟后台交互时需要传一个全路径url。项目上线后,在谷歌,火狐,360等浏览器访问一切正常。但唯独IE8下出现问题,提示url:undefined !
这就尴尬了!!!原来是location.origin不兼容IE8!!!
万恶的兼容性问题, 最终解决方案如下:
1 var baseUrl; 2 if (typeof location.origin === 'undefined') 3 { 4 baseUrl = location.protocol + '//' + location.host; 5 } 6 else 7 { 8 baseUrl = window.location.origin; 9 }
浏览器的location对象拥有很多方便的属性用于获取当前URL的组成部分:
location.protocol
:协议名location.username
:用户名location.password
:密码location.hostname
:主机名location.port
:端口号location.host
:主机名和端口号location.pathname
:路径location.search
:查询串location.hash
:书签名
在较新(未测试,估计是支持跨域XHR之后的)浏览器中,还有
location.origin
:协议名、主机名和端口号
可以使用。