没有'Access-Control-Allow-Origin'标题存在..角7并表示

问题描述 投票:1回答:2

我正在运行一个服务器,快递在端口3000和一个客户端与角7在端口4200.一旦我提出请求,我遇到CORS问题。

从'http://localhost:3000/drug'访问'http://localhost:4200'的XMLHttpRequest已被CORS策略阻止:请求的资源上没有'Access-Control-Allow-Origin'标头。

我已经尝试了所有在线解决方案,如使用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();
    });
node.js express angular7 cross-origin-read-blocking
2个回答
4
投票

在路由代码之前放置这行代码app.use(cors());。 (假设你已经安装了cors包)。


0
投票

我觉得答案会这么晚,但对于未来的某些人来说: 你必须在服务器端打开它。我是.Net开发人员,因此我将以.Net核心应用程序为例。在启动文件方法ConfigureServices中,您应该添加下一个代码

services.AddCors(options =>
        {
            options.AddPolicy("CorsPolicy",
                builder => builder.WithOrigins("http://localhost:4200")
                .AllowAnyMethod()
                .AllowAnyHeader()
                .AllowCredentials());
        });

之后你应该编辑方法Configure。在调用UseMvc之前添加下一行

app.UseCors("CorsPolicy");

就这样。我希望这个答案对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.