img 标签如何通过 cors 标头获取内容

Posted

技术标签:

【中文标题】img 标签如何通过 cors 标头获取内容【英文标题】:How img tag gets content over cors headers 【发布时间】:2018-06-07 06:38:13 【问题描述】:

为什么,当我使用 fetch 从禁用响应 CORS 标头的服务器加载数据时,我预计会收到错误:Failed to load http://www.imgworlds.com/wp-content/uploads/2015/12/18-CONTACTUS-HEADER.jpg: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63343' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. 但是会显示来自 img 标签的图像

<script>
    fetch('http://www.imgworlds.com/wp-content/uploads/2015/12/18-CONTACTUS-HEADER.jpg').then(console.log);
</script>
<img src="http://www.imgworlds.com/wp-content/uploads/2015/12/18-CONTACTUS-HEADER.jpg">

【问题讨论】:

【参考方案1】:

跨域共享标准不包括img 标签,但 XHR/fetch 请求和某些情况下包括将图像绘制到画布上。

更多信息: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#What_requests_use_CORS

【讨论】:

以上是关于img 标签如何通过 cors 标头获取内容的主要内容,如果未能解决你的问题,请参考以下文章

将 no-cors 包含在标头中以获取 react.js 中的 json 内容时出现奇怪的错误

如何使用 Firebase 托管的 webapp 获取没有 CORS 标头的外部数据?

将 CORS 标头与 CSS 背景图像一起使用

是否可以直接从 html img 标签 src 向服务器请求文件并使用 jwt 身份验证标头加载它?

通过修改 HTTP 标头使用没有 CORS 的 XMLHttpRequest?

从 <img> 标签获取 HTTP 状态代码或响应标头?