当前位置: 首页 > 知识库问答 >
问题:

在. net核心Web api和角6中启用CORS

楚岳
2023-03-14

在这里,我使用了一个来自Angular 6的HTTP POST请求,它在. net核心Web API调用中命中,但我没有将响应输出返回到Angular 6,并且在控制台上出现了一个错误:

“访问位于的XMLHttpRequest”http://localhost:55654/api/login/auth“起源”http://localhost:4200'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。"

但我有点困惑,如果它是任何CORS启用访问问题,它不会影响web API调用。但是它命中了API调用,我没有得到响应。

Angular 6 HTTP POST请求:

this.http.post("http://localhost:55654/api/login/auth", credentials, {
  headers: new HttpHeaders({
 "Content-Type": "application/json"
      })
  }).subscribe(response => {
      let token = (<any>response);
      localStorage.setItem("jwt", token);
    }, err => {

    });

我在下面的方法中启用了CORS。NetCore Web API

启动中配置方法。cs

...
app.UseCors(options =>
  options.WithOrigins("http://localhost:4200")
    .AllowAnyMethod()
    .AllowAnyHeader());
 ...

启动中的ConfigureServices方法。cs

...
services.AddCors();
...

共有3个答案

陆城
2023-03-14

我建议添加一个代理来访问您的后端。只需向根目录添加一个代理文件(proxy.conf.json)。

为您的应用提供服务:ng s--proxy-config[PathToProxy]

例如:

{
  "/api/*": {
    "target": "http://localhost:55654",
    "secure": false,
    "logLevel": "debug"
  }
}

https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md

曾涵育
2023-03-14

如评论中所述:

调用应用程序。UseMvc需要在应用程序之后。UseCors

...
app.UseCors(options =>
  options.WithOrigins("http://localhost:4200")
    .AllowAnyMethod()
    .AllowAnyHeader());

app.UseMvc();
...
长孙宜
2023-03-14

启动时。cs加载项配置服务:

services.AddCors();

关于配置添加

app.UseCors(x => x.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());

这解决了你的问题

 类似资料:
  • 我已经创建了非核心webapi项目来与移动应用程序交互。例如,如果我创建了一个名为Data的控制器,它有一个名为Search的方法,如下图所示。该项目已配置为发送和接收json数据。 我可以通过使用以下url,使用postman向该方法发送post请求http://localhost/api/Data/search 类似地,我可以在控制器内创建其他函数,并使用路由“/api/[controller

  • 我正在为PoC点构建我的dotnet core webapi服务,我关心的是为其他ARCH/Devs提供适当的指导。 “相同”方法签名的变化很少 公共动态获取(字符串名称=_defaultName) 公共IActionResult Get(字符串名称=_DefaultName) 获取公共异步任务(字符串名称=_defaultName) 撇开我为什么使用动态类型而不是自定义类型的讨论不谈,我试图理解

  • .NET核心和ASP.NET核心到底有什么区别?

  • 我正在尝试在我的ASP中启用CORS。NET核心API,并允许从我的客户端应用程序传递cookie(6)。但是,每当我试图通过角度应用程序命中endpoint时,我都会收到以下错误: 对预试请求的响应不通过权限改造检查:当请求的凭据模式为包含时,响应中的访问控制允许起源标头的值不得为通配符* 在我的创业公司里。cs文件,我已在ConfigureServices下启用CORS,如: 并在“配置”下:

  • 我的问题和这个差不多。 ASP。Net Core与EF Core和CosmosDB-身份问题 提供的答案不起作用。这会产生其他问题。当我从升级我的应用程序时,这些错误开始出现。NET Core 3.1 to。净5。降级应用程序使所有错误都消失了。显然,这个问题与efcore 5中引入的对cosmos的乐观并发支持有关。 https://docs.microsoft.com/en-us/ef/cor

  • 我和我的朋友在我们的应用编程接口和角客户端上遇到了CORS问题。我们试图建立一个链接,我们正在使用SignalR和客户端(Angular 7)注册自己来接收来自服务器(ASP)的消息。NET核心2.2)。 在浏览器控制台中,我收到以下消息: CORS策略阻止了对来自http://localhost:4200的https://ourEndpoint/坐标中心/谈判的XMLHttpRequest的访问