Ошибка Bad Request возвращает сообщение об ошибке вместо сообщения об ошибке, когда https включен в IIS - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть веб-сайт ASP .NET MVC 4, размещенный на IIS 10.0. Методы действия в контроллерах проверяют входные данные, и, если входные данные неверны, метод действия возвращает код состояния неверного запроса (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);

        });

response.statusText отображает сообщение об ошибке, заданное в методе действия, если сайт использует http. Однако, как только сайт настроен с https, response.statusText возвращает только «ошибку». Я попытался использовать решение, упомянутое здесь, но оно не работает. ASP.NET MVC 5 ajax error statusText всегда "error"

Когда я открываю вкладку «Сеть» в Chrome Developer Tools, это то, что я нахожу:

С включенным HTTP

  • Вкладка Заголовки

    URL запроса: http://example.com/Customer/SaveCustomer

    Способ запроса: POST

    Код состояния: 400 Сообщение об ошибке, отправленное с сервера

    Удаленный адрес: xxxx.xxxx.xxxx.xxxx: 80

    Политика реферера: no -rerrer-when-downgrade

  • Вкладка ответа

    Неверный запрос

С включенным HTTPS

  • Вкладка Заголовки

    URL запроса: https://example.com/Customer/SaveCustomer

    Способ запроса: POST

    Код статуса: 400

    Удаленный адрес: xxxx.xxxx.xxxx.xxxx: 443

    Политика реферера: no -rerrer-when-downgrade

  • Вкладка ответа

    Неверный запрос

Разница между http и https заключается в том, что сообщение об ошибке возвращается с кодом состояния с http и только с кодом статуса, возвращаемым с https.

Есть идеи?

...