【发布时间】:2023-03-26 21:51:02
【问题描述】:
我正在学习 ReactJS 并尝试在 https://raw.githubusercontent.com/kirupa/kirupa/master/reactjs/helloworld_batman.htm 运行代码(这是来自 https://www.kirupa.com/react/building_your_first_react_app.htm 的说明)。
使用 Chrome,永远不会显示“蝙蝠侠”,并且 Chrome 开发者工具会记录以下错误:
在以下位置访问脚本 'https://unpkg.com/react-dom@16.7.0/umd/react-dom.development.js' (重定向自 'https://unpkg.com/react-dom@16/umd/react-dom.development.js') 来自 原点“null”已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
果然,当直接请求 react-dom.development.js 时,Network 选项卡显示缺少标头。
其他注意事项:
- 直接请求 react.development.js 时存在标头
- https://reactjs.org/docs/cdn-links.html 处的说明显示以这种方式从 unpkg 检索文件
- 在 IE 11 中不会出现该问题
我做错了什么?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React! React! React!</title>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
<style>
#container {
padding: 50px;
background-color: #EEE;
}
#container h1 {
font-size: 144px;
font-family: sans-serif;
color: #0080a8;
}
</style>
</head>
<body>
<div id="container"></div>
<script type="text/babel">
var destination = document.querySelector("#container");
ReactDOM.render(React.createElement(
"h1",
null,
"Batman"
), destination);
</script>
</body>
</html>
【问题讨论】:
-
我已将该链接中的代码作为 sn-p 添加到您的问题中。但是,它似乎有效..
-
我在我的项目以及上面的代码 sn-p 上遇到了同样的错误。它似乎可以使用上周的缓存版本。禁用我的缓存导致我遇到了这个问题。