решение выше годится в любом случае: для управления выводом есть буферизация.
только валенок будет держать конект открытым и отдавать клиенту контент только для того чтоб затем сделать редирект js'ом.
@Ryuker: при записи var bar: String? переменная будет не строкой, а опшиналом.
используя восклицательный знак мы ее кастим в тип, указанный при объявлении.
var bar: String? = "xxx"
print(bar) // Optional("xxx")
print(bar!) // ххх
другими словами, запись object! можно рассматривать как алиас object.getValue().
поэтому и говорю, что написана чушь.