📌  相关文章
📜  Access-Control-Allow-Origin 不允许来源 http: localhost:3002. (1)

📅  最后修改于: 2023-12-03 15:13:14.902000             🧑  作者: Mango

Access-Control-Allow-Origin 不允许来源 http://localhost:3002.

简介

Access-Control-Allow-Origin 是一个在前后端分离的项目中常用到的 CORS 配置项。它指定了哪些源站可以访问该资源,用于保护用户隐私和防止 CSRF 攻击。但是,有时候我们会遇到该配置项不允许某个来源 http://localhost:3002 访问的情况。

原因

造成该问题的原因是我们的服务端并没有将 http://localhost:3002 添加到 Access-Control-Allow-Origin 列表中,这就导致了跨域访问被拒绝。为了解决这个问题,需要修改服务端的配置或代码。

解决方法
  1. 添加 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();
});
  1. 修改配置文件

如果你使用的是 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 的问题通常是由于服务端的配置错误导致的。通过修改服务端的代码或配置文件,我们可以解决这个问题,让我们的应用实现跨域访问。