我正在尝试制作一个接受按钮点击的web应用程序。单击按钮后,会向python应用程序发送一个特定的设备和操作代码,然后该应用程序使用Lirc调用irsend命令。这是基于以下源代码/说明:
https://github.com/slimjim777/web-irsend
http://randomtutor.blogspot.com/2013/01/web-based-ir-remote-on-raspberry-pi.html
按钮的html很简单,位于“Xbox.html”中
<button onclick="clickedOp('Xbox', 'OnOff');"> Power </button>
这将启动js函数:
<script>
function clickedOp(device_name, op) {
$.ajax({url:'/' + device_name + '/clicked/' + op});
}
我知道该函数正在触发一个click事件,因为如果我在clickedOp函数中放置一个alert命令,alert命令将运行
python/flask应用程序如下所示:
from flask import Flask
from flask import render_template
from flask import request, redirect, url_for
BASE_URL = ''
app = Flask(__name__)
@app.route("/")
def menu():
return render_template('menu.html')
@app.route("/<device_name>")
def remote(device_name):
if device_name == "Xbox":
return render_template('Xbox.html')
@app.route("/<device_name>/clicked/<op>")
def clicked(device_id=None, op=None):
return render_template('test.html')
if __name__ == "__main__":
app.run('0.0.0.0', port=80, debug=True)
ajax请求之前的所有代码都可以工作。转到“/”加载menu.html模板并显示指向不同设备的链接,例如
<a href="Xbox"> Xbox </a>
将路由到
"/<device_name>"
在python程序中加载“Xbox.html”。 然后,按钮加载并单击它将触发“clickedOp(device_name,op)”功能。 这就是它坏的地方。即使ajax请求路由到
"/<device_name>/clicked/<op>"
未加载“test.html”页
即使Flask调试器说有一个成功的GET请求(它返回200)到“/Xbox/clicked/OnOff”(为上面的例子填充变量),情况也是如此
那么有什么想法可以解释为什么没有从ajax请求中加载test.html,而在我提供的源代码/教程中,他似乎使用了相同的ajax方法?
目前没有回答
相关问题 更多 >
编程相关推荐