即使请求为200,HTML5 EventSource也会引发错误

DeX*_*eX3 5 javascript html5 google-chrome

我有以下JS代码片段:

  var source = new EventSource( "http://localhost:8081/resources" );
  source.onmessage = function() {
    console.log( "Event received!" );
  };

  source.onerror = function( error ) {
    console.log( "Eventsource error" );
    console.log( error );
  };

  source.open = function() {
    console.log( "Eventsource open" );
  };
Run Code Online (Sandbox Code Playgroud)

我的服务器一次发出了一个简单的测试事件。在chrome的“网络”标签中,我看到事件以的形式出现text/event-stream,状态代码为200。不过,我的onmessage回调不会被调用。相反,我得到了onerror回调,但没有很多有用的错误信息。

令我感到困惑的另一件事是,Chrome似乎每3秒左右重新请求一次该事件。我在服务器上看到日志输出,提示该错误事件每3秒发生一次。

如果有帮助,则所有这些都在CORS场景中进行。

Firefox中也发生了同样的情况,只是我看不到“网络”选项卡中的请求,我认为Firefox只是不在那里显示SSE事件。