Задать вопрос
@EvgeniiR
https://github.com/EvgeniiR

Не работает анонимная функция в onAuth(Виджет авторизации от ВК)?

К пустому сайту на локальном сервере сделал виджет для авторизации (https://vk.com/dev/Login?aid=6418856&mode=2).
Ничего не меняя скопипастил их предложенный код для вставки
<script type="text/javascript" src="//vk.com/js/api/openapi.js?152"></script>
<script type="text/javascript">
  VK.init({apiId: 6418856});
</script>

<!-- VK Widget -->
<div id="vk_auth"></div>
<script type="text/javascript">
  VK.Widgets.Auth("vk_auth", {"onAuth":"function(data) {alert('user '+data['uid']+' authorized');}"});
</script>

И он не работает. В Консоли выводится ошибка:
Uncaught TypeError: options.onAuth is not a function
at Server.makeAuth (openapi.js?152:1630)
at openapi.js?152:115
Вот кусок кода в openapi.js в котором происходит ошибка:
if (options.onAuth) {
        options.onAuth(data);
      }

Если заменить анонимную фунцию на, например:
VK.Widgets.Auth("vk_auth", {"onAuth":alert(1)}); то всё работает нормально.
В чём проблема с анонимной функцией?
  • Вопрос задан
  • 593 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@EvgeniiR Автор вопроса
https://github.com/EvgeniiR
UPD: Возился два часа с этой проблемой. Оказалось, что в строке
VK.Widgets.Auth("vk_auth", {"onAuth":"function(data) {alert('user '+data['uid']+' authorized');}"});

Не нужны кавычки после параметра onAuth, т.е. просто вот так:
VK.Widgets.Auth("vk_auth", {"onAuth":function(data) {alert('user '+data['uid']+' authorized');}});

Почему ВК даёт не рабочий пример - вопрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы