локальная html страница на основе данных из интернета

Есть рейтинг: https://alpari.com/ru/invest/pamm/

там более 3000 счетов. Полный рейтинг получается запросом:

xhr.open('GET', 'https://alpari.com/invest/pamm/rating.json', true);

частичный: https://alpari.com/invest/pamm/rating.json?limit=25

так получилось, что сначала я скачал и распарсил рейтинг в shell js, это js файлы, запускающиеся из проводника, тотал коммандера... не из html. Далее я читаю этот и похожие json с диска уже из js в html, для этого в мозилле понадобилось изменить настройку: about:config -> security.fileuri.strict_origin_policy -> false (кнопка Read from disk)

Это cross domain request/ CORS / сервер альпари вряд ли будет вставлять в заголовок: Access-Control-Allow-Origin: *

Нужно как-то решить проблему. Поиск в интернете выводит на всякие хаки, но они основаны на том, что у меня есть свой сервер, откуда я получаю страницы и их части. Я же формирую страницу локально, на основе данных из других доменов через XMLHttpRequest Также, в этом html мне надо сохранять json'ы. Делаю это через 'FileSaver.min.js':

var blob = new Blob([jsonData], {type: "application/json"}); saveAs(blob, 'Saved.json');

И при этом нужно чтобы пользователь сам далее сохранял. В принципе, подходит, но хочется не грузить пользователя работой.

Далее, можно открыть любой счет, например:

https://alpari.com/ru/invest/pamm/329842/#pamm-return

и там есть кнопка скачать. Дают скачать почасовые данные за последний месяц в json (не более чем за месяц)

запрос на скачивание данных легко находится по F12 в мозиле:

https://alpari.com/chart/pamm/329842/return/daily.json - дневной, работает из shell js, но не из html

https://alpari.com/api/ru/pamm/329842/monitoring/hourly_all_candle.json?start=2020-02-01&end=2020-02-14 - часовой. не работает даже если в браузер вставить (forbidden), но сами данные скачать можно, вручную.

Это тоже нужно как-то победить. Может запрос как-то не так достал по F12 в mozilla, вкладка network

Итог - нужно подружить вместе все "фичи"

Способ через БД + Apache использовать не хочу - лишний гемор. Html в этом случае просто так не передашь... (например, сюда, чтобы попросить помощь)

Буду рад узнать о способах решения описанных проблем, лучше чем мои.

выбрал html т.к. очень удобно формировать и менять то что видит пользователь + могу подключить графики от google, но, возможно, технологию выбрал не удачно

упрощённый пример, с которым можно поиграться: https://drive.google.com/open?id=1GYOegEqw2ej5B4coJ_2Zv3bnoMbllUHY


Ответы (1 шт):

Автор решения: Vadim

В общем, проблему CORS в Mozilla решил установкой плагина "Cross Domain - CORS". "CORS Anywhere" не позволяет простым способом добавить разрешенные сервера. И, вроде бы, отправляет запросы через какой-то свой сервер, что не очень хорошо (сервер может тупить или закрыться)

Доступ к локальным файлам пытался победить с помощью user.js:

user_pref("privacy.file_unique_origin", false);

user_pref("security.fileuri.strict_origin_policy", false);

user_pref ("capability.policy.localfilelinks.sites", "file:///e:/myDataFolder/test.json");

user_pref ("capability.policy.localfilelinks.checkloaduri.enabled "," allAccess ");

→ Ссылка