javascript - 从 HTTPS 页面到 HTTP(非 HTTPS)本地主机地址的混合内容请求未被阻止

标签 javascript browser xmlhttprequest mixed-content secure-context

假设下面的页面是从 https://127.0.100.1 加载的。该页面将 XMLHttpRequest 生成为 http://127.0.100.2 。这看起来像 mixed content :页面通过安全连接加载,资源通过不安全连接加载。混合内容应被浏览器阻止。然而,下面的页面工作得很好。*为什么它工作:为什么请求没有被阻止?

更新:超越 accepted answer ,浏览器 can be configured 会阻止此类地址的混合内容。

* 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>

最佳答案

http://127.0.100.2/img.jpg不被视为混合内容,因为混合内容规范将其定义为 a priori authenticated URL 的特例。 ,因为它在 127.0.0.0 - 127.255.255.255 范围内(即具有 CIDR 表示法 127.0.0.0/8 的主机),其中 per the Secure Contexts spec被定义为安全上下文——即使协议(protocol)不是 https。http://localhost/img.jpg 也是如此。或 http://foo.localhost/img.jpg

关于javascript - 从 HTTPS 页面到 HTTP(非 HTTPS)本地主机地址的混合内容请求未被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60448948/

相关文章:

javascript - ESDoc:忽略特定文件

javascript - HTML5 LocalStorage 大小

javascript - MSIE : Keep focus in text field when clicking outside of it

html - 有什么能代替HTML和CSS吗?

Javascript回调函数故障

javascript - 浏览器在使用 CSS 缩放图像时通常使用什么算法?

javascript - 在 Javascript 中为所有 http 请求添加自定义 header

javascript - 如何比较 JavaScript 中的两个 blob?

javascript - AWS S3 - CORS 选项预检在使用 VersionId 删除期间抛出 400 错误请求

javascript - 在 JavaScript 中对数组进行排序