小编Sim*_*mon的帖子

HTTP 状态代码 500、.net core CORS 和 HttpClient 错误

我在 dotnet core 中遇到了一些有关 CORS/HttpClient 的问题。首先,我的应用程序的结构如下:

Webapp -> Microservice-Gateway -> multiple Microservices
Run Code Online (Sandbox Code Playgroud)

如果我从我的 Web 应用程序进行 Ajax 调用

$.ajax({
        url: "https://[actual gateway Url]/customer/" + customerId,
        type: "GET",
        timeout: 60000,
        crossDomain: true,
        dataType: "json",
        success: data => {
            //...
        }
    });
Run Code Online (Sandbox Code Playgroud)

到网关服务器时,我有时会收到以下错误消息:

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://localhost:50595 ”。响应的 HTTP 状态代码为 500。

然而,如果我调试,我的网关在内部会抛出此错误:

System.Net.Http.HttpRequestException:发送请求时发生错误。---> System.Net.Http.WinHttpException:操作超时

我尝试通过在网关和每个微服务中添加以下代码来解决第一个错误:

public void ConfigureServices(IServiceCollection services) {
        var corsBuilder = new CorsPolicyBuilder();
        corsBuilder.AllowAnyHeader();
        corsBuilder.AllowAnyMethod();
        corsBuilder.AllowAnyOrigin();
        corsBuilder.AllowCredentials();

        services.AddCors(options => {
            options.AddPolicy("SiteCorsPolicy", corsBuilder.Build());
        });
 //..
 }
 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { …
Run Code Online (Sandbox Code Playgroud)

c# ajax httpclient asp.net-core

2
推荐指数
1
解决办法
8643
查看次数

标签 统计

ajax ×1

asp.net-core ×1

c# ×1

httpclient ×1