Python Flask 没有收到 AJAX 帖子? [复制]

Posted

技术标签:

【中文标题】Python Flask 没有收到 AJAX 帖子? [复制]【英文标题】:Python Flask not receiving AJAX post? [duplicate] 【发布时间】:2017-02-17 03:54:04 【问题描述】:

我的 javascript/python 脚本遇到了问题。我想要做的是将一个字符串传递给 python 烧瓶,以便我以后可以使用它。当我单击按钮发送字符串时,没有错误但没有任何反应。我基本上是一个自学成才的编码员,所以如果我的脚本格式不正确,我深表歉意!

Javascript:

$('#button').click(function() 
$.ajax(
   url:"/",
   type: 'POST',
   data: data,
   ...

Python 烧瓶:

from flask import Flask
from flask import request
from flask import render_template


app = Flask(__name__)


@app.route('/', methods=['POST', 'GET'])
def home():
    if request.method == "POST":
        string = request.args.get(data)
        print(string)
    return render_template('index.html')


if __name__ == '__main__':
    app.run(debug=True)

我希望能够看到打印到控制台或命令提示符的字符串,我认为 print() 是正确的方法吗? 欢迎任何帮助,谢谢:)

【问题讨论】:

请修正你的缩进。 【参考方案1】:

你想要的是request.data

request.args 包含 URL 中的参数。

查看此内容了解更多详情。 http://flask.pocoo.org/docs/0.11/api/#incoming-request-data

【讨论】:

【参考方案2】:

您可以像这样发出 ajax POST 请求:

$.ajax(
         url: "/",
         method: "POST",
         data:  paramter : value ,
       );

通过这个 POST 请求发送的数据可以在烧瓶应用程序中使用request.form['parameter'] 访问

如果您发送的是原始 json 数据,您可以通过request.json['parameter'] 访问数据

$.ajax(
         url: "/",
         method: "POST",
         data: JSON.stringify("'paramter': 'value'"),
         contentType: 'application/json;charset=UTF-8'
       );

这应该可行。

【讨论】:

【参考方案3】:

如果您在 Ajax 中的数据对象是 json,那么您可以使用 request.get_json()

如果是键值的表单数据,那么你可以request.form.get('data'),但你的ajax应该是

$('#button').click(function() 
$.ajax(
   url:"/",
   type: 'POST',
   data: data: 'mystring',

【讨论】:

以上是关于Python Flask 没有收到 AJAX 帖子? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

TypeError Ajax Post - Flask Python [重复]

通过 Ajax 将数据发布到 Flask 时出现 500 内部服务器错误 [重复]

前端与后端的数据交互(jquery ajax+python flask)

Python前后端交互( Flask & Ajax )

Flask SocketIO 消息未收到

如何在 Python 的 Flask 中识别通过 AJAX 发出的请求?