Jump to content

Question

Posted (edited)

Всем привет.

Задача: на веб странице домашнего сервера получить информацию с роутера, используя JS. Например, результат команды CLI show. Варианты с curl, perl, php не устраивают (пока).

Пробовал и XMLHttpRequest, и Fetch. Не получается авторизация. Нашел инструкцию по авторизации (с realm и challenge) и делал все по ней.

Проблема 1: CORS. Как я понял, роутер не присылает хэдер Access-Control-Allow-Origin. Временно обошел спец ключом для браузера. Но вариант не очень.

Проблема 2: не удалось сохранить куки после первого запроса и отправить его со вторым. У Fetch API есть спец опция. У меня она не сработала. Без куки возвращается 400-я. При этом сравнивал request headers от XMLHttpRequest и от браузера - один в один, кроме куков.

Просьба: если у кого-то работает нужный мне вариант "со своей страницы джаваскриптом обратиться к роутеру и получить результат show" - поделитесь плиз.

Edited by Oleg Oleinikov

10 answers to this question

Recommended Posts

  • 0
Posted

vasek00, большое спасибо. К сожалению, это решение попадает под мое описание "варианты с curl, perl, php". Хочется на своей статической странице с помощью чистого JS браузера обратиться к роутеру и забрать данные. Иначе у каждого клиента придется ставить эти npm, perl, curl.

  • 0
Posted
15 часов назад, Oleg Oleinikov сказал:

на веб странице домашнего сервера получить информацию с роутера, используя JS

Без проксирования запросов по идее невозможно, иначе это была бы дыра. Зачем у клиента ставить, если можно на веб-сервере сделать простой proxy_pass условно?

  • 0
Posted
13 hours ago, Oleg Oleinikov said:

Дело в том, что я не знаю как это делается.

Почитайте здесь, начиная со слов "Включаем прокси".

 

  • Thanks 1
  • 0
Posted

Все же непонятно как мне поможет прокси на хосте роутера. Есть страница со скриптом на хосте А, скрипт пытается забрать данные с хоста Б. CORS мешает. Как мне поможет прокси на хосте Б?

  • 0
Posted

Подниму тему, так как опять проблема.

Мне тогда удалось решить проблему с доступом. На домашнем http-сервере был сделан forward на роутер с добавлением хэдера Access-Control-Allow-Origin. Все работало до обновления с 4.2.6.3 на 4.3.3. Теперь POST на /auth возвращает 403. Проверил изменения в процедуре логина у стандартной программы настройки роутера - никаких изменений. Похоже на какие-то изменения в прошивке при обработке Access-Control-Allow-Origin.

Прошу помочь.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.