失败测试同源IE

问题描述:

此测试(用于发送跨域AJAX或不)在Internet Explorer上始终为false,但它适用于Microsoft Edge。失败测试同源IE

看起来,<a>元素不会在IE上填充。

function testSameOrigin(url){ 
    /* 
     Return true if belongs to the same origin 
    */ 
    var loc = window.location, 
     a = document.createElement('a'); 

    a.href = url; 

    return a.hostname == loc.hostname && 
      a.port == loc.port && 
      a.protocol == loc.protocol; 
} 

我该如何解决这个问题?

感谢您的帮助。

+0

Internet Explorer 12是否存在?最高版本是11.0.28 –

+0

是的,12和13它不是IE,但新的一个微软边缘只在Windows 10上。 – Acute

+0

边缘被完全重写,它可能等同于Chrome或Firefox lol:P –

我解决这个问题:

function testSameOrigin(url){ 

     var canonicalize = function(url) { 
      var div = document.createElement('div'); 
      div.innerHTML = "<a></a>"; 
      div.firstChild.href = url; 
      div.innerHTML = div.innerHTML; 
      return div.firstChild.href; 
     }; 

    var loc = window.location 
     , a = document.createElement('a'); 

    a.href = canonicalize(url); 

    return a.hostname == loc.hostname && 
      (a.port == loc.port || ((a.port == 80 || a.port == 443) && loc.port =="")) && 
      a.protocol == loc.protocol; 
} 

This post帮我找到我的路。