首页 > 解决方案 > AJAX 请求未打印到控制台,但响应出现在网络日志中

问题描述

我有一个烧瓶应用程序,它正在从 grpc 流中接收数据。我正在尝试使用 jquery 将数据加载到我的 index.html 文件中,以便在不刷新页面的情况下更新数据。到目前为止,我的烧瓶应用程序的 grpc 流正常工作,但是尽管浏览器网络日志中出现 jquery 请求,但当我尝试 console.log() 时,传入的事件数据没有出现。为什么会这样?

烧瓶应用程序:

from flask import Flask, render_template, request, Response

import redis
import re
import sys

app = Flask(__name__)

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

@app.route('/print_logs')
def print_logs():

    def generate():

        output = ''
        try:
            conn = redis.StrictRedis(host='redis', port=6379, decode_responses=True)
            for key in conn.scan_iter("log.reddit_server.*"):
                value = conn.get(key)
                
                output += str(key) + value + '<br>'
                
        except Exception as ex:
            output = 'Error:' + str(ex)
        #print(output, file=sys.stderr)
        yield "DATA" + str(output)
    
    return Response(generate(), mimetype= 'text/event-stream')
        
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

索引.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Reddit Data App</title>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

   <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">

  <!-- Latest compiled JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> 

  <link rel="shortcut icon" href="../static/images/logo.png">

  <script type="text/javascript">

    var source = new EventSource("/print_logs");

    source.onmessage = function(event) {
      console.log(event.data);
    }
      
  </script>

</head>
<body>
  <nav class="navbar navbar-expand-md navbar-dark fixed-top" style="z-index: 999; background-color:  #c02f2f;">
    <div class="container-fluid">
      <div class="row">
        <div class="col-2">
          <a class="navbar-brand" routerLink="/" style="color: whitesmoke; padding-left: 10px;">Reddit Data App</a>
        </div>
        <div class="col-10">
        </div>
      </div>
    </div>
</nav>
</body>
</html>

网络日志

标签: javascriptpythonjqueryajaxflask

解决方案


推荐阅读