node.js - 不存在 'Access-Control-Allow-Origin' header .. Angular 7 和 Express

标签 node.js express angular7 cross-origin-read-blocking

我正在端口 3000 运行带有 Express 的服务器,在端口 4200 运行带有 Angular 7 的客户端。一旦我发出请求,就会遇到 CORS 问题。

访问位于“http://localhost:3000/drug”的 XMLHttpRequest '来自原点'http://localhost:4200 ' 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin” header 。

我已经尝试了所有在线解决方案,例如使用 cors 包,并在路由器之前设置中间件,如下代码( Angular 6 - No 'Access-Control-Allow-Origin' header is present on the requested resource )。但它仍然没有解决并且不断出现同样的错误。有没有人有同样的问题,所有的解决方案都没有解决 CORS?请你帮助我好吗?

app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
  res.header(
    "Access-Control-Allow-Header",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});

app.use((req, res, next) => {
      res.header("Access-Control-Allow-Origin", "http://localhost:4200");
      res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
      res.header(
        "Access-Control-Allow-Header",
        "Origin, X-Requested-With, Content-Type, Accept"
      );
      next();
    });

最佳答案

将此行代码放在路由代码之前 app.use(cors()); 。 (假设您已经安装了 cors 软件包)。

关于node.js - 不存在 'Access-Control-Allow-Origin' header .. Angular 7 和 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53272381/

相关文章:

Angular7 - [ngModel] 在两次输入相同的值时不会在组件中更新

node.js - 从 Node shebang 调用时保持查询进程处于事件状态

node.js - 中间件和 app.use 在 Expressjs 中的实际含义是什么?

node.js - 如何使用 `update` 将新元素插入 mongo 文档内的数组中?

javascript - Express socket.io 在 websocket 上出现 404 错误

node.js - 使用 Node/Express 发送后不断收到 "Can' t set headers

angular - 从 Angular 8 的下拉列表中删除/禁用选定的选项(动态创建的)

Angular 7 : Clear selection with x-button on a dropdown box

angularjs - 如何在没有 Node 的情况下本地运行 Angular 2 应用程序

javascript - Node JS 和 C# 中的 AES 加密给出了不同的结果