【问题标题】:HTTP requests canceled in Chrome 83Chrome 83 中取消的 HTTP 请求
【发布时间】:2020-05-20 09:52:15
【问题描述】:

我在我的 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.net google-chrome http telerik


    【解决方案1】:

    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);
    }
    

    【讨论】:

      【解决方案2】:

      所以我遇到了同样的问题,我相信这可能需要在浏览器级别解决,但在他们修复它之前,这里有一个对我有用的解决方法。我还测试了这不仅限于telerik,asp按钮也坏了。我们有很多应用程序都有这种类型的代码,如果将这种代码添加到所有这些地方,那就太疯狂了。我想我们会看看 Chrome 是否会尽快修复它。我还在chrome的about页面上发送了一个“报告问题”并提到了这一点。

      解决方案:

      像这样将 OnClientClicking="OnClientClicking" 添加到您的按钮中:

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

      然后在 javascript 部分添加:(取自teleriks radbutton 演示代码并修改)

      <script>
      OnClientClicking = function (sender, args) {
          var $ = $telerik.$;
      
          if (sender.get_navigateUrl() && sender.get_buttonType() == Telerik.Web.UI.RadButtonType.LinkButton) {
              var url = sender.get_navigateUrl()
              //radopen(url, url);
              window.location.href = url;
              args.set_cancel(true);
          }
      };
      </script>
      

      希望这会有所帮助!

      【讨论】:

      • 谢谢。昨天我们使用了几乎完全相同的解决方案作为解决方法。将对此进行标记。
      • 如果您不介意回发,另一种选择是将 CommandName="something" 添加到按钮并在 itemcommand 中捕获它。
      • 另外,我认为我们在更改
      【解决方案3】:

      您也可以通过使用 RadPushButton 和/或 RadLinkBut​​ton 而不是 RadButton 来解决此问题。它们是 RadButton 的现代版本。

      更新:问题已在R2 2020 SP1 中修复。 R3 2020 中还将添加一项改进,将于 2020 年 9 月 16 日推出。

      【讨论】:

      • 我们刚刚发布了 Telerik Ajax 控件的 R2 2020 SP1,其中处理和修复了 Chrome 更改。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多