MeteorJS HTTP POST请求连接丢失XMLHttpRequest

时间:2018-12-12 20:03:27

标签: python rest http meteor

我正在编写一个应用程序,该应用程序已集成到已经用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服务器时,它可以正常工作。

是否可以解决此错误?如果可以,怎么办?

1 个答案:

答案 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);
        }
    }
)