Т.е. тип данных строка, но получаю [object Object].
Ну так вы сначала преобразуете в строку, что приводит к [object Object], а потом уже делаете typeof. Какой тип был до этого - непонятно. Сделайте console.log(csr) и покажите.
Я сто лет уже jquery не использовал. Нет ли там проблемы с тем, что у вас несколько элементов с таким классом на странице и из-за этого .val() возвращает не то? Попробуйте заменить класс на id, например.
Ещё есть вероятность, что у вас какой-то скрипт на клиенте перезаписывает потом значение и делает это криво.
У вас код не соответствует скриншоту.
Если typeof csrfVal === string, то он не может тут же вывести объект как на скриншоте.
Что-то вы нам явно не договариваете.