Отправка ответа на запрос GET от ESP8266
Я изучаю 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-запросах.
@user453237, 👍1
Обсуждение0
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Почтовый запрос HTTP в формате JSON с использованием модуля SIM900
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- GSM-модуль Sim800l не может подключить данные gprs
- Отправить HTTP get запрос от GSM SIM800c и Arduino
- Как отправить HTTP-post данные в Node Express API с Arduino esp822 6?
- Запрос POST (HTTPClient) с ESP8266, не работающим на локальном хосте (код http = -1)
- ESP8266 HTTPS post запрос тела сообщения с WifiClientSecure
Вы *должны* отправить *полный действительный* HTTP-ответ, *включая* любую информацию о безопасности межсайтовых сценариев. Просто бросая случайные данные вниз IP-соединение не будет работать., @Majenko
невозможно отправить http-ответ с последовательного монитора, потому что вы не можете достаточно быстро ввести строки ответа. Библиотеки Arduino WiFi существуют для esp8266 с прошивкой AT, @Juraj
вы также можете столкнуться с новым ограничением chrome, где "192.xxx" блокируется из большинства доменов, если не используется https, но тогда вы получаете смешанную зону, так как ESP использует HTTP-ответы., @dandavis
Вы пробовали использовать другой браузер?, @sa_leinad
Спасибо @Majenko♦ это сработало, @user453237
@juraj Я ввел полный заголовок ответа с последовательного монитора, @user453237