为什么 'blocked by CORS policy' 在 React 中,而不是在 Node 中?
Why 'blocked by CORS policy' in React, but not with Node?
运行 React 中的完全相同的脚本被 Cors 策略阻止,但当我 运行 它与 node.
- 为什么用node可以,用React不行?
- 如何在 React 应用程序中获取它?
- this chrome extension也允许,是因为脚本是访问youtube执行的,所以domain是youtube吗?
async function isThisAllowed() {
const videoURL = `https://www.youtube.com/watch?v=QnQe0xW_JY4`
const data = await axios.get(videoURL);
console.log(data);
}
CORS 是网站(在本例中为 YouTube)阻止其他域访问它们的一种方式。基本上,在这种情况下,其他域 上的脚本 运行 将无法访问 youtube.com
.
CORS 仅由浏览器强制执行,因此您的 Node 脚本可以按预期工作而您的 React 应用程序不会。
Here's 很好地解释了 CORS 的工作原理。
您可以使用简单的 Node 代理解决此问题:
import express from "express";
import axios from "axios";
const app = express();
app.get("/proxy", async (req, res) => {
const resp = await axios.get(req.query.url);
res.send(resp.data);
});
app.listen(process.env.PORT || 3000);
运行 React 中的完全相同的脚本被 Cors 策略阻止,但当我 运行 它与 node.
- 为什么用node可以,用React不行?
- 如何在 React 应用程序中获取它?
- this chrome extension也允许,是因为脚本是访问youtube执行的,所以domain是youtube吗?
async function isThisAllowed() {
const videoURL = `https://www.youtube.com/watch?v=QnQe0xW_JY4`
const data = await axios.get(videoURL);
console.log(data);
}
CORS 是网站(在本例中为 YouTube)阻止其他域访问它们的一种方式。基本上,在这种情况下,其他域 上的脚本 运行 将无法访问 youtube.com
.
CORS 仅由浏览器强制执行,因此您的 Node 脚本可以按预期工作而您的 React 应用程序不会。
Here's 很好地解释了 CORS 的工作原理。
您可以使用简单的 Node 代理解决此问题:
import express from "express";
import axios from "axios";
const app = express();
app.get("/proxy", async (req, res) => {
const resp = await axios.get(req.query.url);
res.send(resp.data);
});
app.listen(process.env.PORT || 3000);