Angularjs 应用程序洞察:记录了HTTP选项,但忽略了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

我在一个有WebAPI后端的角度网站上使用人工智能

我正在设置AuthenticatedUserContext,在对我的API执行http请求时,我可以看到信息作为cookie附加。由于CORS,有一个飞行前http选项请求,正如预期的那样,该请求不包括AI cookies

查看AI中的遥测数据,我只能看到选项请求,但看不到GET/POST请求。会话和已验证的用户信息未附加到选项请求。为什么记录了选项请求而没有记录GET/POST?如果没有选项请求,如何记录GET/POST请求




我在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错误的迹象。