嗨,我正在使用Jquery对Flask服务器运行AJAX调用,但是一旦运行,它就不会返回成功响应消息:
os.system("roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/maps/"+mapname+".yaml")
这是我的要求:
$.ajax({
url: '/test',
type: 'POST',
data: new_freq,
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
})
Flask服务器代码,
@app.route("/test" , methods=['POST'])
def test():
mapname = request.get_data().decode('utf-8')
os.system("roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/maps/"+mapname+".yaml")
return(mapname)
有人知道如何返回AJAX成功响应吗?
编辑:我已经用内部替换了命令os.system()
,ifconfig
并且mkdir
所有命令都能正常工作并获得成功响应。该命令roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/maps/mapname.yaml
启动一个节点并且永不耗尽。所以有没有办法即使节点正在运行也可以返回成功响应?
我感觉到您只想启动启动文件,而不必等到它终止。如果是这种情况,那么您想roslaunch
在后台启动命令,即,将其与正在运行的python进程分离:
import subprocess
@app.route("/test" , methods=['POST'])
def test():
mapname = request.get_data().decode('utf-8')
subprocess.Popen(["roslaunch", "turtlebot3_navigation", "turtlebot3_navigation.launch", "map_file:=$HOME/maps/"+mapname+".yaml"])
return(mapname)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句