瞥见没有捕获ajax调用

时间:2014-07-12 05:24:52

标签: ajax angularjs glimpse

我有一个ASP.NET MVC5单页Web应用程序,它使用angularjs对ASP.NET Web API 2应用程序进行ajax调用,所有这些都在Chrome开发人员工具Network选项卡中可见。但是,Glimpse不捕获ajax调用,既不在HUD中,也不在Ajax选项卡中。我已将application/json添加到web.config中的glimpse内容类型中。我还在我的angularjs ajax调用中添加了X-Requested-With标题:

$httpProvider.defaults.headers.common = { 'X-Requested-With': 'XMLHttpRequest' };

然而,HUD一直显示0个ajax请求,而Ajax选项卡中没有任何内容。还有什么我应该做的吗?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

我知道这是一个老问题,但网络配置中的以下内容对我有用:

<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
    <runtimePolicies>
      <statusCodes>
        <add statusCode="201" />
        <add statusCode="202" />
        <add statusCode="203" />
        <add statusCode="204" />
        <add statusCode="404" />
      </statusCodes>
    </runtimePolicies>
</glimpse>

Glimpse还通过X-Requested-With:XMLHttpRequest标头识别AJAX调用。默认情况下,AngularJS $ http调用不包含此标头,因此它们不会显示在Glimpse的AJAX面板中。我们可以更改$ httpProvider上的默认值以始终添加此标题...

app.config(['$httpProvider', function ($httpProvider) {
    $httpProvider.defaults.headers.common = { 'X-Requested-With': 'XMLHttpRequest' };
}]);

来源:http://anthonychu.ca/post/getting-angularjs-http-and-web-api-to-work-with-glimpse (请注意链接示例中的错误大小写,请使用上面的内容)

答案 1 :(得分:2)

我有一个类似的问题,试图使用pace.js一瞥。删除它允许ajax请求在一瞥中正确传播。

你可以尝试禁用其他处理ajax事件的javascript库,看看你是否有更好的运气。我的最终解决方案是禁用管理用户的pace.js(唯一能看到瞥见UI的人)。