Отправка ответа на запрос GET от ESP8266

arduino-uno http esp8266webserver

Я изучаю ESP8266 для проекта домашней автоматизации.

Я настраиваю сервер в режиме Wi-Fi 1, используя следующие команды:

(AT+CIPMUX=1,AT+CIPSERVER=1,80.)

Я назначил статический IP-адрес для MAC - адреса в настройках маршрутизатора.

Мне удалось отправить запрос get с HTML-страницы с помощью jQuery $get() в модуль ESP. Я использую только AT - команды через последовательный монитор.

Я подключил его с помощью Arduino и последовательного монитора для отправки команд AT.

+IPD,0,314:GET /?pin=10000 HTTP/1.1
Host: 192.168.0.100
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Mobile Safari/537.36
Origin: null
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9

Это часть HTML-страницы, которая отправляет этот запрос. Предполагается, что он выдаст предупреждение после получения данных с сервера:

<script>
      $(".button").click(function(){
        $.get("http://192.168.0.100:80/", {pin: 10000} , function(data, status){
    alert("Data: " + data + "\nStatus: " + status);
  });    
        });  


    </script>

Я использовал AT+CIPSEND=clientid,length и ввел данные, которые я хотел отправить

AT+CIPSEND=0,8


OK
> 

busy s...

Recv 8 bytes

SEND OK
AT+CIPCLOSE=0

0,CLOSED

OK

Эта ошибка отображается в консоли:

Access to XMLHttpRequest at 'http://192.168.0.100/?pin=10000' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

GET http://192.168.0.100/?pin=10000 net::ERR_FAILED

Я хочу отправить ответ на запрос, и я совершенно новичок в HTTP-запросах.

, 👍1

Обсуждение

Вы *должны* отправить *полный действительный* HTTP-ответ, *включая* любую информацию о безопасности межсайтовых сценариев. Просто бросая случайные данные вниз IP-соединение не будет работать., @Majenko

невозможно отправить http-ответ с последовательного монитора, потому что вы не можете достаточно быстро ввести строки ответа. Библиотеки Arduino WiFi существуют для esp8266 с прошивкой AT, @Juraj

вы также можете столкнуться с новым ограничением chrome, где "192.xxx" блокируется из большинства доменов, если не используется https, но тогда вы получаете смешанную зону, так как ESP использует HTTP-ответы., @dandavis

Вы пробовали использовать другой браузер?, @sa_leinad

Спасибо @Majenko♦ это сработало, @user453237

@juraj Я ввел полный заголовок ответа с последовательного монитора, @user453237