javascript - 为什么我可以在 HTML 和 CSS 中访问跨源图像,但不能在 JS HTTP 请求中访问?
问题描述
我有一个这样的 HTML img 元素:
<img src="https://theposterdb.com/api/assets/11949" />
还有一个像这样的 CSS 类:
div {
background-image: url(https://theposterdb.com/api/assets/11949);
}
这两种方法都有效并在我的网站上显示图像。但是,当我尝试在 JavaScript 中执行以下操作时:
fetch("https://theposterdb.com/api/assets/11949")
我收到 CORS 错误。为什么?我需要在 JS 中获取图像,因为我想检查它是否已成功加载,否则显示自定义替代元素。
解决方案
You could use an event listener to check if the image is loaded.
HTML
<img id="test">
JS
let test = document.querySelector("#test")
test.addEventListener("load",()=>console.log("image was loaded!"))
test.src = "https://theposterdb.com/api/assets/11949"
推荐阅读
- java - 从 Java 8 迁移到 Java 11 - 无法加载 jdk.internal.util 类 (java.lang.NoClassDefFoundError)
- angular - 在窗口滚动primeNg下拉菜单列表应该关闭
- reactjs - 我在几分之一秒内看到登录页面,然后被重定向到潜在客户表单
- ios - GoogleWebRTC 的 RTCEAGLVideoView 没有显示远程视频,而远程音频很好
- python - 为什么 SymPy 不真正计算这样的积分?
- python - 在 Python 中格式化 JSON GET 结果
- php - php购物车会话不更新属性,只更新数量
- c++ - MFC - 带有可选复选框的 CListCtrl 行
- mongodb - 总是产生相同哈希的无序 2 字符串哈希函数
- html - 表单提交响应上的 CSS 显示/隐藏 div