通过AJAX将Javascript变量发布到Python控制器

通过AJAX将Javascript变量发布到Python控制器,javascript,python,ajax,flask,post,Javascript,Python,Ajax,Flask,Post,我是一个编程新手,现在我已经超出了我的能力范围 我正在尝试制作一个应用程序,它使用基于按钮点击的信息,然后可以基于这些按钮点击进行数据分析。这在纯Javascript中工作,但我需要能够将这些数据保存在数据库中,以便我可以在另一个时间登录并从我停止的地方开始,而不是重新开始 我需要能够将存储在变量中的信息传递给服务器,以便在单击按钮时保存在数据库中,还需要在单击其他按钮时将信息从数据库发送回javascript 到目前为止,我已经制作了一个Flask应用程序,但我正在努力使用AJAX将pytho

我是一个编程新手,现在我已经超出了我的能力范围

我正在尝试制作一个应用程序,它使用基于按钮点击的信息,然后可以基于这些按钮点击进行数据分析。这在纯Javascript中工作,但我需要能够将这些数据保存在数据库中,以便我可以在另一个时间登录并从我停止的地方开始,而不是重新开始

我需要能够将存储在变量中的信息传递给服务器,以便在单击按钮时保存在数据库中,还需要在单击其他按钮时将信息从数据库发送回javascript

到目前为止,我已经制作了一个Flask应用程序,但我正在努力使用AJAX将python控制器与javascript连接起来

关于这个话题,这里已经有很多问题了,但是在阅读并尝试了我能找到的所有解决方案之后,我仍然在挣扎

这是我在这里()找到的一个解决方案,但它给了我一个400错误:

var xhr = new XMLHttpRequest();
            xhr.open('POST', '/postmethod', true); // '/postmethod' is where I am hoping to deal with this data on the python controller
            xhr.onload = function () {
                console.log(this.responseText);
            };
            xhr.send(data); //data is a map which contains about 20 key value pairs.
我希望这会将数据记录到控制台上,但它并没有这样做。关于“console.log(this.responseText);”的用途,我可能完全错了

这是我在python方面所能做到的:

@app.route('/postmethod', methods = ['POST'])
def postmethod():
    if request.method == "POST":
        //I want to execute database commands here using the data passed from the javascript. But I do not know how to get the data as a variable in Python from Javascript.
我非常希望能举一个如何使用按钮发布数据的例子。我需要查看python控制器和javascript的代码示例


我发现很难理解我在其他地方读到的解释是如何工作的,因为假设语法已被理解,如果语法已清楚地向我解释,我将不胜感激。

xhr.open的第二个参数是URL。我认为您需要定义后端可访问的完整URL。e、 g

new XMLHttpRequest();
            xhr.open('POST', 'http://localhost:8080/postmethod', true); // '/postmethod' is where I am hoping to deal with this data on the python controller
            xhr.onload = function () {
                console.log(this.responseText);
            };
            xhr.send(data); 


谢谢你的建议。我现在尝试使用完整的URL,但仍然在控制台上收到相同的400错误消息:“POST/postmethod HTTP/1.0”400。