最近项目中遇到一个问题,在ajax跟后台交互时需要传一个全路径url。项目上线后,在谷歌,火狐,360等浏览器访问一切正常。但唯独IE8下出现问题,提示url:undefined !

这就尴尬了!!!原来是location.origin不兼容IE8!!!

万恶的兼容性问题, 最终解决方案如下:

 var baseUrl;
if (typeof location.origin === 'undefined')
{
baseUrl = location.protocol + '//' + location.host;
}
else
{
baseUrl = window.location.origin;
}

浏览器的location对象拥有很多方便的属性用于获取当前URL的组成部分:

  • location.protocol:协议名
  • location.username:用户名
  • location.password:密码
  • location.hostname:主机名
  • location.port:端口号
  • location.host:主机名和端口号
  • location.pathname:路径
  • location.search:查询串
  • location.hash:书签名

在较新(未测试,估计是支持跨域XHR之后的)浏览器中,还有

  • location.origin:协议名、主机名和端口号

可以使用。

location.origin不兼容IE8解决方案的更多相关文章

  1. placeholder兼容IE8解决方案

    1.原因:placeholder是h5的新属性,IE10以前的浏览器(8.9)不支持此属性.   2.解决方法:jQuery三方插件  jquery-placeholder 3.快速开始: <! ...

  2. css 完美垂直居中解决方案兼容ie8以上等其他浏览器

    css 完美垂直居中解决方案兼容ie8以上等其他浏览器 <pre><!DOCTYPE html><html><head> <title>DI ...

  3. location.origin兼容IE

    if (window["context"] == undefined) { if (!window.location.origin) { window.location.origi ...

  4. location.origin兼容

    if (!window.location.origin) { window.location.origin = window.location.protocol + "//" + ...

  5. window.location.origin兼容问题

    if (!window.location.origin) { window.location.origin = window.location.protocol + "//" + ...

  6. 【转】让Bootstrap 3兼容IE8浏览器

    FROM : http://www.ijophy.com/2014/05/bootstrap3-compatible-with-ie8.html 最近在研究Bootstrap(官方,Github)这个 ...

  7. 让Bootstrap 3兼容IE8浏览器

    最近在研究Bootstrap(官方,Github)这个优秀的前端框架,Bootstrap最开始是Twitter团队内部的一个前端框架,所谓前端框架就是一个CSS/HTML框架,框架里面有下拉菜单.按钮 ...

  8. Bootstrap 3兼容IE8浏览器(转)

    Bootstrap是一个响应式的布局,你可以在宽屏电脑.普通电脑,平板电脑,手机上都得到非常优秀的布局体验.这种响应式的布局正是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分 ...

  9. 兼容ie8总结

    最近做了个兼容ie8的项目,把遇到的一些坑总结一下,欢迎大神指正,共勉. 一. js相关 1.  关于库的引用 jquery只能引用1.x的版本,swiper只能引用2.x的版本. 2. 动态生成的d ...

随机推荐

  1. [Swift]LeetCode995. K 连续位的最小翻转次数 | Minimum Number of K Consecutive Bit Flips

    In an array A containing only 0s and 1s, a K-bit flip consists of choosing a (contiguous) subarray o ...

  2. Python的数据库操作(Sqlalchemy)

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  3. Gin框架源码解析

    Gin框架源码解析 Gin框架是golang的一个常用的web框架,最近一个项目中需要使用到它,所以对这个框架进行了学习.gin包非常短小精悍,不过主要包含的路由,中间件,日志都有了.我们可以追着代码 ...

  4. C#版 - Leetcode 633. 平方数之和 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  5. C#版[击败98.85%的提交] - Leetcode717. 1比特与2比特字符 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...

  6. Chapter 4 Invitations——23

    The next morning, when I pulled into the parking lot, I deliberately parked as far as possible from ...

  7. Python系列文章

    前面带有[]符号的是待补充文章,有些可能在随后会跟着补上,有些可能有缘再补

  8. OO第一单元作业总结

    oo第一单元的作业是对多项式的求导.下面就是对三次作业分别进行分析. 第一次作业 分析 第一次作业相对来讲比较简单,甚至不用面向对象的思想都能十分轻松的完成(实际上自己就没有使用),包含的内容只有常数 ...

  9. Java基础篇——线程、并发编程知识点全面介绍(面试、学习的必备索引)

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10739579.html,希望大家多多支持!!! 一.线程基础 1.线程与进程 线程是指进程 ...

  10. 配置javaJDK环境

    1.官网下载JDK包 2.解压包 3.打开vi /etc/profile文件添加一下内容 export JAVA_HOME=/usr/jdk1.8.0_121 #你的jdk所在的目录 export C ...