Javascript 未为SSE客户端定义event.data
我有一个类组件,它使用javsscripteventsourceapi实时从服务器获取警报。但它似乎不起作用。SSE对象的onmessage方法未执行,并且由于onerror方法而关闭连接。我猜数据属性在事件中不可用,所以如何获取API返回的数据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
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对象本身返回错误。这可能就是数据属性未定义的原因