Потеря соединения с запросом HTTP POST MeteorJS XMLHttpRequest - PullRequest
0 голосов
/ 12 декабря 2018

Я пишу приложение, которое интегрируется в веб-сайт, уже написанный на Meteor (я не могу изменить это, но могу добавить к нему).Я пытаюсь отправить информацию из приложения Meteor на мой сервер Flask.

Для этого я использую HTTP-модуль MeteorJ.

Код для этого:

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, я вижу, что он получает почтовый запрос с кодом состояния 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, она работает правильно, когда я пингую флеш-сервер оттуда.

Есть ли способ исправить этоошибка?Если так, то как?

1 Ответ

0 голосов
/ 13 декабря 2018

Привет "параметры" должны быть "данные".Вы можете найти все действительные опции в документах .Дайте мне знать, если это работает для вас.

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);
        }
    }
)
...