возвращает полную html страницу начиная с doctypeсудя по этому у вас отрабатывает сначала контроллер, а затем и вид рендерится, а при аякс запросе нужно после операций с данными аякс отдать ответ и сделать exit;
Это как если бы вы в переменную присвоили значение true, а присвоилось false. Но это абсурд.
var a = true;
function fn(){a=false}
setTimeout(fn,100);
alert(a); // выведет true
In the bottom bar of VSCode, you'll see the label UTF-8. Click it. A popup opens. Click Save with encoding. You can now pick a new encoding for that file.