Подтвердить что ты не робот

$ window.location.origin дает неправильное значение при использовании IE

$window.location.origin возвращает неверное значение в IE.

Свойство origin возвращает протокол, имя хоста и номер порта URL.

Пример

url: http://localhost:8080/products/search

Chrome: $window.location.origin возвращает http://localhost:8080

IE: $window.location.origin возвращает http://localhost:8080/products/search

Как я могу получить правильное значение в IE?

4b9b3361

Ответ 1

Вам также может понадобиться номер порта. Если это так, вы можете использовать этот polyfill

if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" 
    + window.location.hostname 
    + (window.location.port ? ':' + window.location.port : '');
}

Этот polyfill уже является частью Modernizr.

Ответ 2

Проблема (как обычно) - это IE, у которого нет window.location.origin

Вместо этого попробуйте использовать что-то вроде:

var root = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');

Или вы можете добавить поверх своего javascript этот код, чтобы не беспокоиться об этом

if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}