EventSource的onmessage不执行

duxingzhe0311 duxingzhe0311 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看w3cschool的HTML5教程--HTML 5 服务器发送事件
试着写了一下:
<!DOCTYPE html>
<html>
<body>
<header>
</header>
<h1>获得服务器更新</h1>
<div id="result"></div>
<script>
if(typeof(EventSource) == "function")
{
var source=new EventSource("http://localhost:8080/HelloWorld/EventSource.jsp");
source.onmessage = function(event)
{
//这个方法没进来
//alert(100);
document.getElementById("result").innerHTML += event.data + "<br />";
};
}
else
{
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>
</body>
</html>

服务端--EventSource.jsp:
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@ page contentType="text/event-stream; charset=UTF-8"%>
<%
response.setHeader("pragma","no-cache");
response.setHeader("expires","0");
response.setHeader("Cache-Control", "no-cache");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = df.format(new Date());
System.out.println("data: " + str);
out.print("data: " + str);
out.flush();
%>

可以看到,服务端在不断打印东西,但是客户端的source.onmessage方法就是没进去。搜了一下其他相关的解释:发现只是有个浏览器的开发者工具中客户端不断发起请求的截图。
例如:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/难道那个方法是不会进去的?求高人指点,不胜感激!
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
duxingzhe0311
HTML5 43,737 成员 5,570 内容