首页 > 解决方案 > 如何在本地主机上使用 ASP .NET Core 2.2 设置 Angular8 CORS?

问题描述

我已阅读有关使 CORS 在 .Net Core 2.2 上工作的帖子,但我仍然无法使其工作。

我有一个在 localhost:4200 上运行的 Angular 客户端和一个在 localhost:5000 上运行的 .Net Core 2.2 WebApi。

Web api 允许来源 localhost:4200(客户端)

WebApi Cors 设置

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

app.UseCors(CorsPolicy);

Angular 客户端标头

let headers_obj = {
        'Content-Type': 'application/json',
        'Access-Control-Allow-Methods': '*',
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Headers':'Origin, Content-Type, X-Auth-Token, content-type',
        Authorization:"Basic " + btoa(data.username+":"+data.password)
    }

标签: angularasp.net-core-2.2

解决方案


你可以使用代理来实现

第一次编辑angular.json

"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "app:build",
            "proxyConfig": "proxy.conf.json"<-----add this
          },

然后proxy.conf.json在文件附近创建angular.json插入这个

{
    "/Name_OF_API/1.0.0": {
       "target": "https://your_calling_api/",
       "changeOrigin": true,
       "secure": false,
       "logLevel": "debug"
     }
   }

然后像这样初始化你的基本路径

protected basePath = './Name_OF_API/1.0.0';

然后运行并检查cmd显示您的proxy设置


推荐阅读