我问这个问题因为我们将开发一个应用程序,它应该通过javascript共享交叉源数据.一种可能的解决方案似乎是JSONP,因为它使用SCRIPT标签从其他域中提取数据.但是,我想避免我们在假设SCRIPT标记不受sop限制的情况下实现我们的强大代码的情况,并且在某些时候浏览器禁止此功能.
任何人都可以了解SCRIPT标签允许跨域请求的原因是什么?
我正在学习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重定向)访问脚本来自源'null'的/react-dom.development.js ')已被CORS策略阻止:所请求的资源上没有'Access-Control-Allow-Origin'标头。
当然,当直接请求react-dom.development.js时,Network选项卡显示标头丢失。
其他注意事项:
我究竟做错了什么?
<!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> …Run Code Online (Sandbox Code Playgroud)