Александр: Сорри, наверно невнимательно прочитал. Я тоже сначал подумал, что речь о макросах типа С++, но потом увидел лисп и меня переклинило на автокадовский лисп, потом мысли улетели на оффис и... вот результат. Плохой ассоциативный ряд. Но про макросы из вопросов я тоже в курсе. ))) Просто ещё один способ влияния на исходный код программы. Что-то вроде программирования языка программирования.
mak_ufo: >> все объекты xhr одинаковые
Не xhr одинаковые, а это один объект. Его свойство status меняется во время загрузки данных и генерирует событие onreadystatechange (В комменте Почему ответ от сервера приходит 3 раза? об этом и было написано) . А onload срабатывает всего один раз.
mak_ufo: Стоп. Пропустил ваш ответ "при событии xhr.onload = () => {} на клиенте всё выводится один раз, кстати". А где выдаётся три раза? Или вы уже решили проблему?
mak_ufo: Эээ. fiddler, конечно, не работает. А проксирование - работает. Если под рукой есть машина с windows - поставьте на ней fiddler и откройте на ней удалённый доступ:
После этого пропишите в вашем браузере в linux прокси на windows-комп и порт 8888 (внешний порт для доступа к fiddler). Профит. Проверьте количество запросов ещё раз.
mak_ufo: А какие ответы выводятся? onreadystatechange меняется несколько раз за время получения ответа. Моё воображение может нарисовать два сообщения "на зарегистрирован" и одно "зарегистрирован". Вам нужно учитывать только status===200. Остальные - только для отлова ошибок или ожидания. И они не считаются.
mak_ufo: Добавьте проверим, сколько раз вызывается ваш код? Для этого, в код перед "xhr.send(json);" добавьте вывод в консоль (например, console.log("submit") ).
Простите, если моё предложение очевидно, но сам код мне кажется правильным. Может быть добавление вашего обработчика происходит три раза?
Breathing: Так у вас же есть доступ к встроенному браузеру после redirect? Можете повесить на него обработчик события окончания загрузки страницы? Если да, то выцепляете этот токен.
Breathing: CefSharp??? Отличная штука! Я никогда не использовал Api VK, но если речь идёт о C#, то вот нашёлся такой пакет NuGET: https://vknet.github.io/vk/ Может получится сделать даже без Cef, только на C#?
И за что вы так ненавидите flash? Если отбросить в сторону, что это сторонний плагин в браузере, то более лучшего редактора, сочетающего анимированную векторную графику и программирование я не видел. Может у вас есть такой на примете?
Николай:
>> Мне не нужно выводить в консоль, мне нужно работать с полученной переменной. Не запихивать же весь функционал в функцию аякса.
Именно так и нужно работать. Смиритесь.
Зелим Бельтоев:
>> думаете, мне только студию было лень запускать?)
Хахаха! Правильный подход!!!! ))) +++
Если resharper показывает не только строки, где встретилась эта переменная, а и в какой функции эта переменная используется, то да, круто! Однозначно лучше Ctrl-F и Shift-F12. Гляну на досуге.