【问题标题】:IIS Windows Authentication: Angular 4 + .Net Core 2.0 - Access-Control-Allow-OriginIIS Windows 身份验证:Angular 4 + .Net Core 2.0 - Access-Control-Allow-Origin
【发布时间】:2018-02-20 17:37:39
【问题描述】:

我已经尝试了多个有关此主题的 StackOverflow 问题,但没有一个对我有用。我在控制台中不断收到此错误:

无法加载http://myserver:8080/api/user:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://myserver' 不允许访问。响应的 HTTP 状态代码为 401。

Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors(options => options.AddPolicy("CorsPolicy", builder => builder.WithOrigins("http://myserver","http://localhost").AllowAnyMethod().AllowAnyHeader().AllowCredentials()));
    services.AddMvc(config => config.Filters.Add(typeof(CustomExceptionFilter))).AddJsonOptions(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
    services.AddDbContext<MyDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
    services.AddSingleton(Environment);
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseCors("CorsPolicy");
    app.UseStaticFiles();
    app.UseMvc(routes =>
    {
        routes.MapRoute()...// All of my routes
    });
}

我也尝试在 AddPolicy 方法中使用 AllowAnyOrigin()。

当我在浏览器中查看我的 API 时,当我直接点击它时它工作正常:http://myserver:8080/api/user,但是,当我的 Angular 应用程序进行相同的调用时它不起作用:

ngOnInit() {
    return this.http.get(`${environment.apiUrl}/api/user`).subscribe(
        response => { ... }
    );

environment.prod.ts:

export const environment = {
    apiUrl: "http://myserver:8080",
    production: true
};

有其他人在 Angular4 和 .Net Core 2.0 应用程序之间遇到过这些问题并知道解决方案吗?

【问题讨论】:

    标签: angular iis windows-authentication asp.net-core-2.0


    【解决方案1】:

    您可以尝试将代理配置添加到您的 Angular cli:

    代理配置文件:

    {
     "/api/*": {
       "target": "http://myserver:8080",
       "secure": false,
       "logLevel": "debug",
       "changeOrigin": true
    }
    

    并将其添加到您的 ng serve 脚本中:

    "start": "ng serve --proxy-config proxy.conf.json"
    

    【讨论】:

      猜你喜欢
      • 2019-10-12
      • 2018-09-27
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 2018-06-22
      • 2018-11-27
      • 2017-08-12
      • 2018-10-03
      相关资源
      最近更新 更多