Angularjs 应用程序洞察:记录了HTTP选项,但忽略了GET/POST
我在一个有WebAPI后端的角度网站上使用人工智能 我正在设置AuthenticatedUserContext,在对我的API执行http请求时,我可以看到信息作为cookie附加。由于CORS,有一个飞行前http选项请求,正如预期的那样,该请求不包括AI cookies 查看AI中的遥测数据,我只能看到选项请求,但看不到GET/POST请求。会话和已验证的用户信息未附加到选项请求。为什么记录了选项请求而没有记录GET/POST?如果没有选项请求,如何记录GET/POST请求Angularjs 应用程序洞察:记录了HTTP选项,但忽略了GET/POST,angularjs,cookies,cors,azure-application-insights,http-options-method,Angularjs,Cookies,Cors,Azure Application Insights,Http Options Method,我在一个有WebAPI后端的角度网站上使用人工智能 我正在设置AuthenticatedUserContext,在对我的API执行http请求时,我可以看到信息作为cookie附加。由于CORS,有一个飞行前http选项请求,正如预期的那样,该请求不包括AI cookies 查看AI中的遥测数据,我只能看到选项请求,但看不到GET/POST请求。会话和已验证的用户信息未附加到选项请求。为什么记录了选项请求而没有记录GET/POST?如果没有选项请求,如何记录GET/POST请求 我在msdn
我在msdn论坛上回复了你。我也在这里回答: 我想你击中了目标。GitHub问题有一个解决建议,您可以尝试 要进行过滤,请使用此选项。您将获得如下代码:
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;
public class SuccessfulDependencyFilter : ITelemetryProcessor
{
private ITelemetryProcessor Next { get; set; }
// Link processors to each other in a chain.
public SuccessfulDependencyFilter(ITelemetryProcessor next)
{
this.Next = next;
}
public void Process(ITelemetry item)
{
if (!OKtoSend(item)) { return; }
this.Next.Process(item);
}
private bool OKtoSend (ITelemetry item)
{
var request = item as RequestTelemetry;
//if its not a Request, return true. We don't care to filter it here
if (request == null) return true;
if (request.Name.StartsWith("OPTIONS")) //CORS Pre Flight Request
{
return false;
}
}
}
修改请求,使其不需要预飞行,或者让服务器正确响应预飞行,以便浏览器可以使用正确的get/post请求跟进。@KevinB“使用正确的get/post请求跟进”是什么意思?在飞行前请求之后,get/post请求成功完成,唯一的问题是它们没有记录在AI的遥测中。我当时理解错误。我的印象是他们没有发生,这通常是一个cors错误的迹象。