从找不到Javascript 404调用python

时间:2018-02-18 14:32:12

标签: javascript python jquery ajax

我试图通过使用ajax在javascript中运行一个简单的python脚本(我更喜欢使用像Flask这样的东西)。

在我的Javascript中我有:

$.ajax({
type: "POST",
url: "text.py",
    data: { param: "text"}
}).done(function( o ) {
    // do something
});

但是在浏览器内部我收到错误:

  

POST http://127.0.0.1:8887/text.py 404(未找到)   VM119:1 XHR加载失败:POST" http://127.0.0.1:8887/text.py"。

我的index.jstext.js位于同一目录中。当我在浏览器中输入http://127.0.0.1:8887/text.py时,会显示python代码。我不确定发生了什么。

任何帮助都会很棒!谢谢

1 个答案:

答案 0 :(得分:0)

一个简单的Flask应用程序将是这样的:

/app.py
/templates
    /index.html

app.py

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('index.html')

@app.route("/echo", methods=["POST"])
def echo():
    print('echo called')
    data = request.values.get('param', '')
    print(data)
    return data

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8787, debug=True)

的index.html

<html>

<head>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

</head>
<body>

    <div class="container">
        <div class="row">
                <div class="col">
                    <textarea rows="20" style="width:100%" id="results"></textarea>
                </div>
            </div>
        </div>
    </div>

    <script src="//code.jquery.com/jquery-3.2.1.min.js"
            integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
            crossorigin="anonymous"></script>

    <script>
        $().ready(function () {
            console.log('ready');

            $.ajax({
                url: "{{ url_for('echo') }}",
                method: "POST",
                data: { param: "text"}
            }).done(function(data, textStatus, jqXHR ) {
                //console.log(data);
                $('#results').val(data);
            });
        });

    </script>


</body>

</html>

比跑:

python app.py

比你去的那样:http://127.0.0.1:8787