我对这一切都是新手,所以如果我做错了什么,请告诉我。
我正在用我的覆盆子pi做一些gpio的东西,现在我正在做一些东西,这样gpio的引脚就可以通过一个web界面来控制了。我这样做的方法之一是使用bash CGI脚本来控制引脚,并从浏览器执行它们。
到目前为止,我能让它工作的唯一方法是浏览器加载包含代码的页面".../cgi-bin/gpio1.cgi
“等:
#!/bin/bash
echo "Content-type: text/html"
echo ""
...gpio stuff...
这是可行的,但是浏览器会导航到由该脚本创建的空白页面。
有没有一种方法可以在不离开网页的情况下执行这些脚本,这样脚本就不会编写HTML,而是专注于实际的gpio内容?
谢谢
发布于 2013-06-13 04:16:27
试试这个:
#!/bin/bash
echo "Status: 204 No Content"
...gpio stuff...
HTTP响应必须以状态行开始;如果CGI没有指定状态行,webservers通常会添加状态“200OK”。该状态必须伴随响应正文,该正文将形成新的网页。
您想要的状态是204
,这表示请求已得到满足,但没有响应,浏览器应该停留在同一页面上。通常,这是对POST
请求的响应,而不是对GET
请求的响应,但无论如何它都应该可以工作。因为204
响应不需要响应体(实际上,它不允许有响应体),所以不需要在状态行之后输出一个空行,但是如果脚本运行时间较长,则可能需要一个空行。
https://stackoverflow.com/questions/17076246
复制