IE11 Ajax请求仅在Dev Tools打开时生成

时间:2017-04-05 07:52:21

标签: ajax knockout.js internet-explorer-11

我有一个使用knockoutjs的asp.net MVC5应用程序。

我遇到了问题"刷新"按钮位于下一页:

summarypage

按钮单击绑定到以下ajax请求:

self.get = function () {
        $loadingIndicator.show();

        $.ajax({
            url: BASE_URL + 'APInvoicesSummary/GetRecords',
            type: 'get',
            data: {
                'cache': false,
                'page': self.pagingOptions.currentPage(),
                'pageSize': self.pagingOptions.pageSize(),
                'filter': self.filterOptions.filterText == undefined ? '' : self.filterOptions.filterText(),
                'sort': self.sortInfo().column.field + ' ' + self.sortInfo().direction
            },
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                self.pagingOptions.totalServerItems(data.RecCount);

                var recsArray = [];
                $.each(data.PageOfRecords, function (key, value) {
                    recsArray.push(
                        new rec(
                            moment(value.DateReceived).format('DD/MM/YYYY HH:mm ss'),
                            value.BatchRef,
                            value.Control_NumOfItems,
                            Math.round(value.Control_Value * 100) / 100,
                            value.Control_LinkToArchive,
                            value.Rejected_NumOfItems,
                            value.Rejected_Value,
                            value.Accepted_NumOfItems,
                            Math.round(value.Accepted_Value *100) / 100,
                            value.RejectedLineNumbers,
                            value.LinkToEditBatch
                            )
                    );
                });
                self.recs(recsArray);
            }
        });

这是绑定:

<div id="Refresh">
    <button type="button" class="btn btn-default btn-md refresh-button" data-bind="click: get">
        <span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> Refresh
    </button>
</div>

Chrome的一切正常,但在IE11中运行时,单击按钮无效,除非F12开发工具处于打开状态 - 然后才能正常工作。我可以在提琴手中看到,如果没有开启Dev Tools,就不会有任何请求。

任何想法?

我已经在其他地方读到这可以归结为javascript中的console.log代码但是我已经完成了搜索并且找不到任何内容。

1 个答案:

答案 0 :(得分:1)

我创建了以下自定义ActionFilterAttribute

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoStore();

        base.OnResultExecuting(filterContext);
    }
}

然后我装饰了包含我的KnockoutJS正在进行Ajax调用的动作的控制器类:

[NoCache]
public class APInvoicesSummaryController : APInvoicesBaseController
{