Изначально наверное не много минусов. Как отметил Пикл, в одной области все легко найти.
Я бы сказал, что функциональность должна оставаться в контроллере, где она принадлежит. Просто потому, что вход и выход AJAX не должны иметь значения. Фактически, в контроллере может быть метод, такой как метод show user, который может либо выводить страницу HTML, либо данные AJAX. Нет причин помещать эти вещи в отдельный контроллер AJAX, когда он принадлежит пользовательскому контроллеру.
Честно говоря, это все дизайнерские решения. Я просто предпочитаю хранить вещи там, где они логически, и подходить к AJAX как к проблеме ввода-вывода, а также создавать свои методы для обработки этого ввода / вывода.
Мы развернули нашу собственную инфраструктуру, и мы создали маршрутизатор, который обрабатывает входящий трафик. И у вызовов ajax есть конец .json. Затем это становится доступным для контроллеров, и если контроллер поддерживает запросы AJAX, он будет выводить действительные данные JSON вместо передачи данных в представление и последующего отображения HTML.