python - MeteorJS HTTP POST 请求连接丢失 XMLHttpRequest
问题描述
我正在编写一个集成到已经用 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 烧瓶服务器时它可以正常工作。
有没有办法解决这个错误?如果有怎么办?
解决方案
嗨,“参数”应该是“数据”。您可以在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);
}
}
)
推荐阅读
- android - 自定义工具栏未附加到顶部
- wpf - 在 WPF WebView2 中循环 PDF 页面
- python - Django 的 select_for_update 方法是否与 update 方法一起使用?
- javascript - 当我在 vue js 中切换选择框时,如何将 Vuelidate 用于新字段?
- python - 在python中指定函数的输出类型
- windows - Windows 容器:Telegraf 作为 sidecar 看不到 IIS(w3wp)
- gcc - ARM-GCC 链接问题
- python-3.x - python 3.9.4中的类在调用方法时给出不一致的属性错误
- arrays - 根据多个其他数组检查数组中的对象属性的最快方法?
- citrus-framework - Citrus Catch JAVA 异常