Angular HttpResponse活动中的Cors问题
我正在运行-AspnetCore Monolith仪表板示例 工作流程: 这个问题发生在HttpReponse活动中,HttpEndpoint工作正常 我在客户端上遇到了一个服务器无法捕捉到的错误,我认为问题发生在: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触发了一些在某个点失败的后台线程,但
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”行移到顶部,我已经是一个“贡献者”。祝贺您,感谢您和所有创建这个伟大项目的人。