Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular HttpResponse活动中的Cors问题_Angular_Asp.net Core_Cors_Elsa Workflows - Fatal编程技术网

Angular HttpResponse活动中的Cors问题

Angular HttpResponse活动中的Cors问题,angular,asp.net-core,cors,elsa-workflows,Angular,Asp.net Core,Cors,Elsa Workflows,我正在运行-AspnetCore Monolith仪表板示例 工作流程: 这个问题发生在HttpReponse活动中,HttpEndpoint工作正常 我在客户端上遇到了一个服务器无法捕捉到的错误,我认为问题发生在: Elsa.Activities.Http -> WriteHttpResponse -> OnExecuteAsync(ActivityExecutionContext context) 似乎response.WriteAsync触发了一些在某个点失败的后台线程,但

我正在运行-AspnetCore Monolith仪表板示例

工作流程:

这个问题发生在HttpReponse活动中,HttpEndpoint工作正常

我在客户端上遇到了一个服务器无法捕捉到的错误,我认为问题发生在:

Elsa.Activities.Http -> WriteHttpResponse -> OnExecuteAsync(ActivityExecutionContext context)
似乎
response.WriteAsync
触发了一些在某个点失败的后台线程,但未捕获异常:

//
///要随响应一起发送的标头。
/// 
[ActivityProperty(Hint=“要写入的附加头”,UIHint=ActivityPropertyUIHints.Json)]
公共httpresponses负责人?响应头{get;set;}
受保护的重写异步值任务OnExecuteAsync(ActivityExecutionContext上下文)
{
var httpContext=_httpContextAccessor.httpContext??新的DefaultHttpContext();
var response=httpContext.response;
...
var bodyText=内容;
如果(!string.IsNullOrWhiteSpace(bodyText))
{
尝试
{
wait response.WriteAsync(bodyText,context.CancellationToken);

等待任务。延迟(5000);确保将
启动
类更新为:

  • 添加CORS服务,以及
  • 添加CORS中间件
  • 如前所述,确保在调用
    app.UseHttpActivities()
    (处理HTTP工作流请求的中间件)之前添加CORS中间件组件

    ConfigureServices
    中的示例代码:

    //允许任意客户端浏览器应用访问API,仅用于演示目的。
    //在生产环境中,确保只允许您信任的来源。
    services.AddCors(cors=>cors.AddDefaultPolicy(policy=>policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().WithExposedHeaders(“内容处置”));
    
    配置中的示例代码:

    app
    .UseCors()
    .UseHttpActivities()
    .UseRouting()
    .UseEndpoints(端点=>{endpoints.MapController();});
    
    有了这一点,Angular应用程序的AJAX调用现在应该被允许了。

    我只需将“UseCors”行移到顶部,我已经是一个“贡献者”。祝贺您,感谢您和所有创建这个伟大项目的人。