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

asp中的CORS。net core 2.1和angular

梁骞仕
2023-03-14

关于这个问题有很多讨论,但是没有一个对我有用。我有一个asp.net核心api 2.1与角7应用程序。

错误:

“车队:1次访问位于的XMLHttpRequest”https://localhost:44354/api/test“起源”http://localhost:4200'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。"

启动:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme.AddAzureADBearer(options => Configuration.Bind("AzureAd", options));

    services.AddCors((options =>
    {
        options.AddPolicy("AzurePolicy", builder => builder
                    .WithOrigins("http://localhost:4200", "https://localhost:4200", "Access-Control-Allow-Origin", "Access-Control-Allow-Credentials")
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials()
         );
    }));

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseCors("AzurePolicy");
    app.UseAuthentication();

    app.UseMvc();
}

配置:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "xx.com",
    "TenantId": "xx",
    "ClientId": "xx"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

我甚至在控制器中添加了以下内容:

 [EnableCors("AllowSpecificOrigin")]

你还能在这里做更多的事情吗?

共有1个答案

邹高峻
2023-03-14

在appsettings中添加AzureActiveDirectory设置。json

像这样:

"AzureAd": {
  "Instance": "https://login.microsoftonline.com",
  "Domain": "AD_DOMAIN",
  "TenantId": "TENANT_GUID",
  "ClientId": "APPLICATIONID_GUID"
}

有关更多详细信息,请参阅本文

 类似资料:
  • 我们正在开发具有移动部分和网络用户界面的应用程序。Web UI使用角,我们在后端配置cors时遇到了问题。我们的代码如下(只是对我们的问题很重要的代码): 从stackoverflow上的文档和其他帖子来看,这应该是可行的,但不是。我们错过了什么? thnx 编辑: 这是邮递员的请求: 卷曲'https://guw.azurewebsites.net/api/token'-X OPTIONS-H'

  • 我试图从JS/Ajax向我的WebAPI发出请求时遇到了问题。在我的解决方案中,我有一个发布在srv02:2400上的Web API,我的网站发布在srv02:2300上 当我导航到页面时http://srv02:2300/all-请求。aspx,页面加载正常,除了应该来自我的API的数据 我得到了一个错误: 但是,如果我把url超文本传输协议://srv02:2400/api/请求/查找/1粘贴

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

  • 问题内容: 由于某种原因,每当我尝试将一些数据发布到api服务器时,都会出现以下两个错误。 这是我的客户端有角JS代码,试图发送一些简单数据。该代码当前正在位于以下位置的Nginx服务器上运行 这是我的节点JS代码,用于处理“处理”请求 问题答案: 如错误消息所述,您必须在对预检的响应中确认Content-Type标头。这可能是由于您的请求的非“简单” Content- Type(表面上是appl

  • 问题内容: 我有一个基于@RestController和AngularJS的简单项目。我可以将Angular的GET请求发送到@RestController,但无法发送POST请求。我在浏览器控制台中出错: XMLHttpRequest无法加载http:// localhost:8080 / add 。Access-Control-Allow- Headers不允许请求标头字段Content-Ty

  • 当我们需要调用Ajax请求时,我们需要: 我已经知道,使用,我们可以发出一个跨源请求,并添加源标题。 问题: > 它是在浏览器(支持CORS)执行请求时添加的吗?(跨域还是非跨域? 我的意思是:他**是什么意思? 跨源HTTP请求有一个源标头。此标头向服务器提供请求的来源。此标头受浏览器保护,不能从应用程序代码更改。本质上,它是跨文档消息传递中使用的消息事件上的origin属性的网络等价物。原始标