【问题标题】:Flask 405 POST Method Not AllowedFlask 405 POST 方法不允许
【发布时间】:2015-11-24 14:48:21
【问题描述】:

我正在开发一个网络应用程序;添加通过 Ajax 调用的新 Python/Flask 方法后,浏览器控制台出现错误:

“POST 405(不允许的方法)”

我在这里发现了很多类似的问题,但没有答案:

  • 我为路由指定了 GET 和 POST 方法:methods=['GET','POST']
  • 我重启了apache
  • 我将 dataType 设置为“jsonp”

同一文件中的多个 Python/Flask 函数已经以相同的方式工作,没有问题。也许 Flask 应该重新加载?配置了新路由?

此外,我的机器上的本地服务器一切正常。直到现在我将代码移植到托管服务器时才遇到此问题。

我的 JS

function launchStreaming(jsonPath){
    var data = {};
    data.file = jsonPath;

    $.ajax({
        type: 'POST',
        url: "/launchStream",
        data: JSON.stringify(data),
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function(data) {
            stringDebug('streaming Success!');
        },
        error: function(e) {
            stringDebug(e);
            alert ("Problem during streaming, please refresh and retry");
        }
     });

我的 Python

@app.route('/launchStream', methods=['POST'])
def launchStream():
    if request.method == 'POST':
        json_datas = request.json
        # do streaming...

        return json.dumps({'success':True}), 200, {'ContentType':'application/json'}

提前致谢

【问题讨论】:

    标签: python ajax apache web flask


    【解决方案1】:

    检查生产中是否有任何 uwsgi 服务(例如,通过 ps -aux,尝试找到类似 uwsgi --ini myproject.ini)。如果你会发现 uwsgi 重新启动它。

    【讨论】:

    • 如果这是一个很好的答案,请详细说明她/他应该检查的原因以及按照您的指示发现了什么
    • 是的,有 uwsgi 服务正在运行。我重新启动了 uwsgi,但没有任何改变。我很快会再次检查。谢谢
    • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post。 - From Review
    • @ForceMagic 我的声望低于 50,所以我不能评论 Charlie 的帖子。 Charlie请提供linux版本,我认为某些服务有问题,您应该检查正在运行的服务(例如service --status-all)。
    • @PawełKalinowski 是的,我知道,但我们能做什么?只需标记它,模组就会将其作为评论。我也不喜欢这个系统。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 2014-05-23
    • 2018-12-20
    • 2015-11-16
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多