📅  最后修改于: 2023-12-03 15:13:14.902000             🧑  作者: Mango
Access-Control-Allow-Origin 是一个在前后端分离的项目中常用到的 CORS 配置项。它指定了哪些源站可以访问该资源,用于保护用户隐私和防止 CSRF 攻击。但是,有时候我们会遇到该配置项不允许某个来源 http://localhost:3002 访问的情况。
造成该问题的原因是我们的服务端并没有将 http://localhost:3002 添加到 Access-Control-Allow-Origin 列表中,这就导致了跨域访问被拒绝。为了解决这个问题,需要修改服务端的配置或代码。
你可以直接在服务端的响应头中添加 Access-Control-Allow-Origin 头字段,将其设为 http://localhost:3002,代码如下:
app.use(function (req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "http://localhost:3002");
next();
});
如果你使用的是 Express 框架,可以在 app.js 或 server.js 中添加以下代码:
const cors = require("cors");
app.use(
cors({
origin: "http://localhost:3002",
credentials: true,
})
);
这里的 origin 参数即为 Access-Control-Allow-Origin 的配置项,credentials 参数表示服务器接受客户端所发送的 cookie。
Access-Control-Allow-Origin 不允许来源 http://localhost:3002 的问题通常是由于服务端的配置错误导致的。通过修改服务端的代码或配置文件,我们可以解决这个问题,让我们的应用实现跨域访问。