【问题标题】:Python Flask not receiving AJAX post? [duplicate]Python Flask 没有收到 AJAX 帖子? [复制]
【发布时间】: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() 是正确的方法吗? 欢迎任何帮助,谢谢:)

【问题讨论】:

  • 请修正你的缩进。

标签: javascript python html ajax flask


【解决方案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'},
      

      【讨论】:

        猜你喜欢
        • 2015-03-25
        • 1970-01-01
        • 2014-04-26
        • 2016-06-03
        • 1970-01-01
        • 2019-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多