Я не могу подключиться с Node-RED к Freeboard.io с помощью JSON
Я пытаюсь создать приборную панель надводного борта. У меня есть Arduino с четырьмя датчиками, которые отправляют свою информацию по mqtt. Итак, я на Node-RED генерирую JSON для ответа на запрос get в /saida.
[{"id":"3f699b5.c91f064","type":"http response","z":"c7d4e8c8.509218","name":"","x":1184,"y":589,"wires":[]},{"id":"a3ed6250.1d64","type":"json","z":"c7d4e8c8.509218","name":"","x":1120.5,"y":540,"wires":[["3f699b5.c91f064"]]},{"id":"971f41c1.a1265","type":"function","z":"c7d4e8c8.509218","name":"","func":"msg.payload = {\"temperatura\":\"25\"}\nreturn msg;","outputs":1,"noerr":0,"x":1015.5,"y":584,"wires":[["a3ed6250.1d64"]]},{"id":"ed9f7a2a.604728","type":"http in","z":"c7d4e8c8.509218","name":"http in","url":"/saida","method":"get","swaggerDoc":"","x":850,"y":582,"wires":[["5b40d38c.5cc7ec","971f41c1.a1265"]]}]
В данный момент я использую статический JSON для тестирования. У меня есть хост, как:
my-public-host:1880/saida -> {"temperatura":"25"}
Я получаю к нему доступ через прокси, JSON возвращает нормально. При проверке порта ping.eu порт открыт. Я гарантирую, что мой хост публичный.
Но на своем надводном борту я добавляю его как источник данных, затем он говорит, что "никогда" не обновляется, и я не могу прочитать информацию JSON.
Что я должен сделать, чтобы решить это?
2 ответа
Я решил свою проблему.
В freeboard.io есть ошибка. thingproxy.freeboard.io не работает. Браузер не позволяет freeboard.io делать AJAX-запрос на другую ссылку, отличную от https. Кроме того, браузер не позволяет делать AJAX-запрос для другого хоста.
Есть два решения:
- Используйте sitelock на вашем хосте и добавьте Access-Control-Allow-Origin к заголовкам ответа.
- Используйте прокси https и расширение браузера, чтобы разрешить перекрестный доступ.
до свидания!
Правильный.
Если источником данных является приложение на основе колб, вы можете перейти по этой ссылке ниже, чтобы прочитать надводный борт.