我有一个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选项卡中没有任何内容。还有什么我应该做的吗?我该如何解决这个问题?
答案 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的人)。