0

我有一个 Javascript XMLHttpRequest 调用,它调用 python app.py(使用烧瓶)。python 脚本 myapp.py 返回“Hello World”。我在 Chromium Debug 中看到返回“hello world”。但它不会在 responsetext 值中返回到 Javascript XMLHttpRequest。

这是我的javascript代码:

function foo() {
    var xml = new XMLHttpRequest();
    xml.open("GET", "/myapp/web.py", true);
    xml.send(null);
    var text = xml.responseText;
    alert(text);

}

这是python脚本:

flask python # cat myapp.py
from flask import Flask
app = Flask(__name__)


@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def catch_all(path):
    return "hello world"

#@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()
4

3 回答 3

0

由于 JavaScript 的异步特性,您需要使用回调函数来获取数据。

function ajaxSuccess () {
    alert(this.responseText);
}

function foo() {
    var xml = new XMLHttpRequest();
    xml.open("GET", "/myapp/web.py", true);
    xml.send(null);
    xml.onload = ajaxSuccess;
}
于 2013-09-18T20:59:58.203 回答
0

尝试 :

function foo() {
    var xml = new XMLHttpRequest();
    xml.onreadystatechange() {
        var text = xml.responseText;
        alert(text);
    }
    xml.open("GET", "/myapp/web.py", true);
    xml.send(null);
}
于 2013-09-23T13:16:35.457 回答
0

我相信你已经解决了这个问题。解决此问题的一种方法是您应该检查 xml.readyState==4 && xml.status == 200

于 2015-02-04T03:41:14.700 回答