【问题标题】:Flask Python String Not Returning Back To Javascript XMLHttpRequest callFlask Python字符串不返回到Javascript XMLHttpRequest调用
【发布时间】:2015-02-04 11:41:14
【问题描述】:

我有一个 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()

【问题讨论】:

    标签: javascript python xmlhttprequest flask uwsgi


    【解决方案1】:

    由于 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;
    }
    

    【讨论】:

      【解决方案2】:

      试试:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2014-09-25
          • 1970-01-01
          • 2022-11-16
          • 2013-12-10
          • 1970-01-01
          • 2011-07-28
          • 2020-12-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多