Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未为SSE客户端定义event.data_Javascript_Reactjs_Server Sent Events - Fatal编程技术网

Javascript 未为SSE客户端定义event.data

Javascript 未为SSE客户端定义event.data,javascript,reactjs,server-sent-events,Javascript,Reactjs,Server Sent Events,我有一个类组件,它使用javsscripteventsourceapi实时从服务器获取警报。但它似乎不起作用。SSE对象的onmessage方法未执行,并且由于onerror方法而关闭连接。我猜数据属性在事件中不可用,所以如何获取API返回的数据 componentDidMount() { page_number = 1 const sse = new EventSource(obj.django_api_server+'/monitoring/alert

我有一个类组件,它使用javsscripteventsourceapi实时从服务器获取警报。但它似乎不起作用。SSE对象的onmessage方法未执行,并且由于onerror方法而关闭连接。我猜数据属性在事件中不可用,所以如何获取API返回的数据

    componentDidMount() {
        page_number = 1
        const sse = new EventSource(obj.django_api_server+'/monitoring/alertsws/?resolved=False&page='+page_number);
        // sse.onopen = function(event) {
        //   console.log(event.data);
        //   console.log("alerts received from server");
        // };
        sse.onmessage = function(event) {
          // this.forceUpdate()
          console.log(event.data);
          console.log("New alert received from server");
        };
        sse.onerror = function(event) {
          console.log(event.error);
          console.log("closing connection");
          sse.close()
        };
      }
    }
控制台打印事件提供(不包含任何类似消息的属性)。它并没有完全扩展,因为它看起来很长

    Event {isTrusted: true, type: "open", target: EventSource, currentTarget: EventSource, eventPhase: 2, …}
    bubbles: false
    cancelBubble: false
    cancelable: false
    composed: false
    currentTarget: EventSource {url: "https://www.monitoring-alert-dev.allthingswordpress.io/monitoring/alertsws/?resolved=False&page=1", withCredentials: false, readyState: 2, onopen: ƒ, onmessage: ƒ, …}
    defaultPrevented: false
    eventPhase: 0
    isTrusted: true
    path: []
    returnValue: true
    srcElement: EventSource {url: "https://www.monitoring-alert-dev.allthingswordpress.io/monitoring/alertsws/?resolved=False&page=1", withCredentials: false, readyState: 2, onopen: ƒ, onmessage: ƒ, …}
    target: EventSource {url: "https://www.monitoring-alert-dev.allthingswordpress.io/monitoring/alertsws/?resolved=False&page=1", withCredentials: false, readyState: 2, onopen: ƒ, onmessage: ƒ, …}
    timeStamp: 27382.45499995537
    type: "open" 

控制台日志的输出是什么?未定义和关闭连接。因此,正在执行onerror方法,请仅记录“事件”。不是“event.error”它记录带有许多属性的eventSource对象,但我找不到数据。你能在这里复制并粘贴该对象吗。那么只有我们才能指出错误。您将转到错误回调,因为sse对象本身返回错误。这可能就是数据属性未定义的原因