Все дело оказалось в неправильной настройке IIS. Ни один post запрос к ларавел не проходил. При установке php 7.2 через web platform installer, он почему-то устанавливает заодно и php 5.3. Выяснил это последовательно - сначала создал свой роут с вызовом и get и post запросом. Через get он открылся, а через post - нет. Тогда я поместил файл с phpinfo() рядом. При открытии через get он выдавал 7.2, через post 5.3. Выяснилось, что в web.config список методов для обработчика php 5.3 был через запятую без пробелов: GET,HEAD,POST
, а для 7.2 - с пробелами: GET, HEAD, POST
. Сделал одинаково (без пробелов) - laravel завелся. Видимо, с пробелами он не находил методов, кроме get, который был первым и искал следующий обработчик, и находил 5.3 В логах к 5.3 я потом нашел эти ошибки. Звездочку (*) в моем случае нельзя ставить, чтобы запросы options шли на cors собственный модуль iis, это используется в других местах. Кого-то этот вариант может это и устроить. К сожалению, через интерфейс поправить не удастся (только через "редактор конфигурации"), так как назначение обработчиков требует путь с пробелами забивать в кавычки, а обработчик fastCGI - без кавычек :)