Ответ из API приходит, о том, что неверный ключ указан.
И срабатывает ошибка тут switch (json.weather[0].main)
Т.к. нет ключа с weather в json и это не массив, нужно внимательно смотреть в консоль разработчика, там все наглядно показано, в чем ошибка и где именно.
Если используете яндекс метрику, то необходимо настраивать "особым образом".
Запись содержимого iframe с другого домена
Чтобы Вебвизор записал содержимое iframe, адрес которого отличается от адреса сайта, настройте счетчик особым образом.
1. Записываешь добавленные изображения в массив.
2. При нажатии создать запись отправляешь данные контента + изображения массивом.
3. Сохраняешь изображения и контент на сервере как тебе угодно.
4. Не переживаешь, что пользователь загрузит изображение, но не сохранит статью.