服务器发送事件在Google Chrome中不起作用

这是我的服务器JSP代码“ Server_Date.jsp”

<%

response.setHeader("cache-control", "no-cache");

response.setContentType("text/event-stream");

out.print("data: " + (new java.util.Date()).toString() + "x\n\n");

out.flush();

%>

这是我的客户端jsp页面“ Client_Serverdate.jsp”

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body onload="begin()">

<h1>Getting server updates</h1>

<div id="result"></div>

<script >

if(typeof(EventSource)!=="undefined")

{

var source=new EventSource("Server_Date.jsp");

source.addEventListener("message", function(event) {

document.getElementById("result").innerHTML = event.data;

}, false);

}

else

{

document.getElementById("result").innerHTML="Sorry, your browser does not support server-sent events...";

}

</script>

</body>

</html>

请帮助我,此代码在Mozilla Firefox,Opera中可以正常运行,但在Google Chrome中不能正常工作(我也被18.x和20.x选中了)。

它要转到我已使用print语句检查过的服务器页面,但未到达该行document.getElementById("result").innerHTML =

event.data;

回答:

问题解决了

解决方案:

页面编码问题:客户端使用UTF-8编码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

没有提及服务器端UTF-8,因此在setContentType中添加charset = UTF-8后,它的工作原理

response.setContentType("text/event-stream;charset=UTF-8");

谢谢大家努力回答我的问题

以上是 服务器发送事件在Google Chrome中不起作用 的全部内容, 来源链接: utcz.com/qa/404210.html

回到顶部