我正在编写一个应用程序,该应用程序已集成到已经用Meteor编写的网站中(我无法更改它,但可以对其进行添加)。我正在尝试将信息从Meteor应用程序发送到我的Flask服务器。
为此,我正在使用MeteorJs的HTTP模块。
此代码:
HTTP.post('http://127.0.0.1:5000/path', {
"content" : {"headers" : {"Content-Type": "application/json"}, "data": {time: getTime, data: getData()}}
},
(error, result) => {
if(error){
console.log(error);
console.log({time: getTime(), data: getData()})
}
else {
console.log(result);
}
}
)
getTime()
和getData()
都在此功能之外独立工作,因此它们不应成为错误的根源。
当我查看事件触发时的JS控制台时,会收到以下消息:
Error: Connection lost at XMLHttpRequest.xhr.onreadystateexchange
以及应该发送到Flask服务器的内容。
当我查看Flask服务器时,发现它正在接收状态代码为200的发布请求,但似乎实际上没有接收到任何数据。
python端的代码:
@app.route(r'path', methods=["POST"])
def get_data():
print(request.data)
print(request.args)
return "Hello World"
打印语句空出,并在控制台b'[object Object]'
或ImmutableMultiDict([])
上显示
Meteor应用程序和Flask应用程序都位于不同的端口上。
我认为问题出在MeteorJS端,因为我使用curl linux函数,当我从那里ping flask服务器时,它可以正常工作。
是否可以解决此错误?如果可以,怎么办?
答案 0 :(得分:0)
您好,“参数”应为“数据”。 您可以在the docs中找到所有有效的选项。 让我知道它是否对您有用。
HTTP.post('http://127.0.0.1:5000/path', {
data : {time: getTime(), data: getData()}
}, (error, result) => {
if(error){
console.log(error);
console.log({time: getTime(), data: getData()})
} else {
console.log(result);
}
}
)