我试图将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。服务器有问题吗?
答案 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 或 如果问题是前者,那么您只需更改代码以首先请求第一个URL。
如果是后者,则需要发送cookie数据。您可能可以将其硬编码到程序中,或者可能需要解析响应以从脚本中提取cookie的正确值。