Javascript XMLhttpRequest 将文本作为空字符串返回

问题描述

我使用以下代码创建了一个flask服务器

from flask import Flask

app = Flask(__name__)

defaults = {
    "status": "running","session": "loggedIn"
}

jsonObject =  json.loads(json.dumps(defaults))


@app.route('/api/data/')
def apiData():
    return jsonObject

app.debug=True
app.run(host='127.0.0.1',port=6464,threaded=True)

然后我用下面的javascript创建一个网页

  function api(url) {
    var sender = new XMLHttpRequest;
    sender.open('GET',url)
    sender.send()

    return sender
  }

var serverData = api('/api/data')
console.log(serverData.responseText)

在控制台中,它返回 <empty string>

这是我尝试过的:

  • 在浏览器开发者控制台中检查了该功能并且它起作用了

    dev console

  • 我想检查烧瓶日志,发现它用 308 响应,这意味着重定向,经过一些研究,我发现 CORS 可能是问题所在,所以我将此代码添加到烧瓶应用程序>

from flask_cors import CORS
CORS(app)

但是还是不行。它仍然返回空字符串

  • 使用 curl 检查,效果很好
$ curl http://localhost:6464/api/data/
{
  "session": "loggedIn","status": "running"
}
      
var apiData = api('/api/data/') //didn't work
//------------------------------------------
var apiData = api('http://localhost:6464/api/data/') //didn't work
//------------------------------------------
var apiData = api('http://127.0.0.1:6464/api/data/')//didn't work

我的问题是,我的数据在哪里?为什么它在网页运行时返回空字符串,以及为什么在浏览器开发控制台运行时返回实际数据。我的浏览器是 Firefox BTW

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)