Хотел бы уточнить, какие наводки вы мне дали? "Попробовать по другому" - вы эту наводку имеете в виду? "Загуглиииии" - или вот эту?
Возможно, ошибка 400 возвращается из-за несоответствия типов данных, которые вы отправляете в запросе. jQuery по умолчанию отправляет данные в формате application/x-www-form-urlencoded. В то время как fetch отправляет данные в JSON-формате, так как вы явно указали заголовок Content-Type в своем запросе. Попробуйте изменить заголовок вашего fetch запроса на 'Content-Type': 'application/x-www-form-urlencoded', или же попробуйте принудительно изменить формат данных в JQuery запросе на JSON и убедитесь, что это соответствует формату, который вы используете в функции JSON.stringify(data). Если это не поможет, возможно, что проблема не в типе данных, а в других параметрах запроса. Попробуйте сравнить все параметры (URL, метод, заголовки, тело запроса) между этими двумя запросами еще раз, чтобы убедиться, что они идентичны.
Да, с Content Type тоже игрался. data это один и тот же объект в обоих примерах, вообще все входящие данные идентичны.
Обсуждают сегодня