首页 > 解决方案 > Chrome 83 中取消的 HTTP 请求

问题描述

我在我的 asp.net 解决方案中的某些页面上使用 Telerik。在起始页上,我有一些具有相同设计的按钮(它们被重定向到 aspx 页面),例如

<telerik:RadButton runat="server" ID="Button" NavigateUrl="Dest/Example.aspx"

自最新的 chrome 更新(v 83)以来,所有请求都失败(状态已取消)。发起人似乎是 }else{if(!e||e=="_self"){window.location.href=h; (telerik资源)

有人有想法吗?任何帮助表示赞赏。

标签: c#asp.netgoogle-chromehttptelerik

解决方案


似乎 Google Chrome 对 84 版的更新解决了这个问题,并且旧版本再次正常工作。你能确认一下吗?

此外,如果您使用的是 R2 2020 SP1 版本并遇到问题,您可以尝试恢复回发功能的原始行为。

您还可以在反馈门户项目中订阅和分享您的方案:

恢复预服务包版本:

将以下脚本放在页面的 ScriptManager 下。

Telerik.Web.UI.Button.PostbackFunctionality.prototype.clicked = function (ev) {
    var that = this;
    var baseResult = that.base.clicked(ev);

    that._isInput = that._isEventTargetButton(ev);

    //FIX: The AjaxManager does not update the affected update panels when the default button fires the click under IE browsers,
    //so we need to set _activeDefaultButtonClicked to null, in order to for the Ajax to work
    var requestManager = Sys.WebForms ? Sys.WebForms.PageRequestManager.getInstance() : null;
    if (requestManager) requestManager._activeDefaultButtonClicked = true;

    // old version code
    var pbResult = that.options.autoPostBack ? that._postback() : false;

    // new version code
    //var pbResult = that.options.autoPostBack;
    //var isNavigating =
    //    (that.options.buttonType == 1
    //        || that.options.buttonType == 4)
    //    && that.options.navigateUrl != "";

    //if (pbResult && !isNavigating) {
    //    that._postback();
    //}
    //else {
    //    pbResult = false;
    //}

    if (requestManager) requestManager._activeDefaultButtonClicked = false;

    delete that._isInput;

    return (baseResult && pbResult);
}

推荐阅读