失败测试同源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;
}
我该如何解决这个问题?
感谢您的帮助。
答
我解决这个问题:
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帮我找到我的路。
Internet Explorer 12是否存在?最高版本是11.0.28 –
是的,12和13它不是IE,但新的一个微软边缘只在Windows 10上。 – Acute
边缘被完全重写,它可能等同于Chrome或Firefox lol:P –