【问题标题】:Flask app posting data to the wrong resource?烧瓶应用程序将数据发布到错误的资源?
【发布时间】:2015-05-08 15:14:42
【问题描述】:

我有一个搜索按钮,点击该按钮后,应将数据发送到我的服务器。 javascript看起来像这样:

$('#search-btn').click(function() {
      $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/my_route",
        data: JSON.stringify({title: 'hallo', article: 'test'}),
        dataType: 'json',
        success: function (data) {
        console.log(data.title);
        console.log(data.article);
        },
      });
    }); 

在服务器上,我的路由如下所示:

@app.route('/my_route')
def route(methods=['GET', 'POST']):
    print(request.method)
    return flask.jsonify({"foo": "bar"})

使用此设置,我从 jQuery 收到控制台错误:POST http://localhost:5000/ 405 (METHOD NOT ALLOWED)

我不明白为什么这段代码会向错误的资源抛出 405 广告发布数据? ajax 和路由都指向/my_route。谁能发现我的问题?谢谢。

【问题讨论】:

    标签: javascript jquery python flask


    【解决方案1】:

    很确定您需要将methods=['GET', 'POST'] 放入app.route 装饰器中,如下所示:

    @app.route('/my_route', methods=['GET', 'POST'])
    def route():
        print(request.method)
        return flask.jsonify({"foo": "bar"})
    

    http://flask.pocoo.org/docs/0.10/quickstart/#http-methods

    【讨论】:

    • 不用担心,很高兴我能帮上忙!既然这解决了您的问题,您介意接受它作为最佳答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多