微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。