Почему браузер IE 11 случайно имеет Content-Length = 0 для запросов JQuery AJAX POST?

Я работаю над веб-сервером Spring MVC.

Ниже приведены сведения о моей среде: - Java 1.8.0_162 (64 bit), Spring 4.3.1, Apache Tomcat 8.0.49, Waffle-1.8.3 для SSO, jquery-1.11.3 и Google Charts API.

Поместите следующий код JavaScript в один из общих файлов JS: - $.ajaxSetup({ cache: false });

Запросы JQuery AJAX POST сделанные на сервере, безупречно работают в браузерах Mozilla и Chrome. Но когда дело доходит до браузера IE 11, запросы JQuery AJAX POST работают без сбоев только тогда, когда окно загружается в первый раз. Затем сбой случайным образом и один раз проваливаются, последующие запросы также терпят неудачу.

Ниже приведены снимки вкладки " Сеть " браузера IE 11:

  1. УСПЕШНЫЙ запрос ajax POST: enter image description here

  2. FAILED запрос ajax POST: enter image description here

Оба запроса имеют объект JSON в своих соответствующих телах запроса. Но значение свойства Content-Length равно 416 (общие символы стробированного объекта JSON) для успешного запроса & 0 для неудачного. Для случайного неудачного запроса POST и последующих запросов Content-Length всегда 0, но вычисляемый объект JSON всегда присутствует в теле запроса. В каждом запросе объект JSON создается динамически.

UPDATE-1 (26March2018) Ниже приведена конфигурация аутентификации Waffle AD, определенная в файле web.xml:

<filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class>
    <init-param>
        <param-name>principalFormat</param-name>
        <param-value>fqn</param-value>
    </init-param>
    <init-param>
        <param-name>roleFormat</param-name>
        <param-value>both</param-value>
    </init-param>
    <init-param>
        <param-name>allowGuestLogin</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>securityFilterProviders</param-name>
        <param-value>
            waffle.servlet.spi.NegotiateSecurityFilterProvider
        </param-value>
    </init-param>
    <init-param>
        <param-name>waffle.servlet.spi.NegotiateSecurityFilterProvider/protocols</param-name>
        <param-value>
            Negotiate
            NTLM
        </param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/welcome.do</url-pattern>
</filter-mapping>

Только 1 URL-адрес, т. /welcome.do (исходный URL-адрес, который загружает веб-приложение), настроен для вызова аутентификации SSO.

Ниже приведен код JavaScript, который запускает запросы AJAX:

function getData() {
    let dashboardFilterParams=new DashboardFilterParams(<passing the arguments to this constructor>);
    //alert(JSON.stringify(dashboardFilterParams));
    //console.dir(dashboardFilterParams);
    $.ajax({
            url: str_THIS_WA_URL+"/xyz/abcdXYZ.do?httpReqType=ajaxReq",
            data: JSON.stringify(dashboardFilterParams),
            dataType: "json",
            contentType: "application/json",
            mimeType: "application/json",
            type: "POST",
            success:function(responseData){
                        if(responseData && "success"===responseData.reqResult) {
                            //populating tables & drawing charts using Google Charts JS API if successfully fetched the data
                        } else {
                            //showing error message
                        }
                    },
            error:function(data,status,er) {
                        showTheMessage("danger","Error getting data");
                        console.log("error: "+JSON.stringify(data)+"\n status: "+status+"\n er:"+er);
                    }
     });
}

Сведения о версии IE 11:

IE 11 version details

Кроме того, я использую API графиков Google для отображения диаграмм на странице. Для которых запросы отправляются на сервер API графиков Google. Этот эффект в браузере IE?

Каково решение заставить его работать в браузере IE 11?

Ответы на вопросы Federico klez Culloca в разделе комментариев:

  1. Нет ошибки на стороне запроса (клиента). Но ответ с сервера говорит, что The request sent by the client was syntactically incorrect. и ответные заголовки Response HTTP/1.1 400 Bad Request.

  2. Абсолютной разницы в содержании тела запроса нет.

  3. str_THIS_WA_URL variable указывает на тот же домен, что и webapp, т.е. Запросы AJAX находятся в текущем домене.

Добавление метки времени (по предложению shawn в разделе комментариев ниже) к URL-адресу не решило проблему.