假设下面的页面是从 加载的https://127.0.100.1
。该页面生成一个XMLHttpRequest
to http://127.0.100.2
。这似乎是混合内容:页面通过安全连接加载,资源通过不安全连接加载。混合内容应被浏览器阻止。然而,下面的页面工作得很好。*为什么它工作:为什么请求没有被阻止?
更新:除了接受的答案之外,可以将浏览器配置为阻止此类地址的混合内容。
* Wireshark 确认浏览器没有通过安全连接加载资源。
<html>
<body>
<img id="dst"/>
<script>
let xhr = new XMLHttpRequest();
xhr.open('get', 'http://127.0.100.2/img.jpg');
xhr.responseType = 'blob';
xhr.onload = function(){
document.getElementById('dst').src = URL.createObjectURL(xhr.response);
}
xhr.send();
</script>
</body>
</html>