Bad Request error returns "error" 而不是在 IIS 中启用 https 时的错误消息

Bad Request error returns "error" instead of the error message when https is enabled in IIS

我有一个 ASP .NET MVC 4 网站托管在 IIS 10.0 上。控制器中的操作方法验证输入,如果输入不正确,操作方法 returns 错误请求状态代码 (400) 以及错误消息。代码如下

public ActionResult SaveCustomer(Customer customer){
      var message = string.Empty
      var isValid = ValidateCustomer(customer, ref message);
      if (!isValid)
      {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest,message);   
      }
      //Remaining code to save customer
}

客户端代码使用 JQuery AJAX 请求,如下所示

var customer = {};
// Code to fill the customer object
$.post('/customer/savecustomer', customer, function (data) {

            alert('Customer saved');

        }).error(function (response) {
            alert(response.statusText);

        });

只要站点使用 http,response.statusText 就会显示操作方法中设置的错误消息。但是,一旦站点配置了 https,response.statusText returns 就只是“错误”。 我尝试使用此处提到的解决方案,但它不起作用。 ASP.NET MVC 5 ajax error statusText is always "error"

当我在 Chrome 开发人员工具中打开网络选项卡时,我发现了以下内容:

启用 HTTP

启用 HTTPS

http和https的区别在于http返回错误信息和状态码,而https只返回状态码。

有什么想法吗?

原来它与 HTTP 2.0 有关。我关闭了 HTTP 2.0 并切换到 HTTP 1.1。现在错误消息按预期显示。我不知道为什么 HTTP 2.0 会导致这种行为。