通过ESP8266的GET请求失败

时间:2018-07-16 09:06:47

标签: php http nginx esp8266 at-command

我试图将GET请求发送给ESP8266在网络上上传的PHP文件,但我想直接通过串行监视器来执行。每件事都是正确的,并且GET请求可以正确发送,但是PHP文件无法执行。

当我尝试在浏览器中调用PHP文件并运行http://readsensor.epizy.com/esp_post.php?temperature=11&humidity=11时,它会执行并在网络上正确更改数据。

这是我的串行监视器

AT+CIPSTART="TCP","readsensor.epizy.com",80

CONNECT

OK
AT+CIPSEND=85

OK
> 
Recv 85 bytes

SEND OK

+IPD,1099:HTTP/1.1 200 OK
Server: nginx
Date: Sun, 15 Jul 2018 12:59:01 GMT
Content-Type: text/html
Content-Length: 870
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache

<html><body><script type="text/javascript" src="/aes.js" ></script> 
<script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d) 
{e.push(parseInt(d,16))});return e}function toHex(){for(var d= 
[],d=1==arguments.length&&arguments[0].constructor==Array? 
arguments[0]:arguments,e="",f=0;f<d.length;f++)e+= 
(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var 
a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers
("98344c2eee86c3994890592585b49f80"),c=toNumbers  
("248813c2e30a32e656e03e29a770b794");document.cookie="__test=
"+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; 
path=/"; location.href="http://readsensor.epizy.com/esp_post.php? 
temperature=40&humidity=40&i=1";</script><noscript>This site requires 
Javascript to work, please enable Javascript in your browser or use a browser 
with Javascript support</noscript></body></html>CLOSED

由于这部​​分响应

  

此网站需要使用Javascript,请在​​您的浏览器中启用Javascript或使用支持Javascript的浏览器

我检查了Web浏览器以启用脚本,甚至对其进行了更改,但仍然遇到此错误。

我的服务器是NGINX。服务器有问题吗?

1 个答案:

答案 0 :(得分:0)

查看错误消息。

  

此网站需要使用Javascript,请在​​您的浏览器中启用Javascript或使用支持Javascript的浏览器

然后查看服务器返回的代码:

document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; 

它设置了一个cookie ...

location.href="http://readsensor.epizy.com/esp_post.php? 
     

温度= 40&湿度= 40&i = 1“;

…然后重定向浏览器。

所以:

  • 您请求的网址不是http://readsensor.epizy.com/esp_post.php,然后JavaScript无法运行,并且您从未请求PHP
  • PHP会检查是否设置了cookie,如果未设置,则会输出JavaScript进行设置,然后重定向以再次运行脚本。

如果问题是前者,那么您只需更改代码以首先请求第一个URL。

如果是后者,则需要发送cookie数据。您可能可以将其硬编码到程序中,或者可能需要解析响应以从脚本中提取cookie的正确值。