我正在使用angular 4和java开发一个Web应用程序。我正在使用服务器发送的事件将一些文本数据发送到前端。在后端我使用的是球衣,这是我的后端代码
eventOutput.write(new OutboundEvent.Builder()
.id(decodedToken)
.name("responseBody")
.data(String.class, respBody.toString()).build());
前端我使用角度4,代码看起来像
var evtSource = new EventSource("url");
source.addEventListener('eventName', (event) => {
console.log(event);
});
Mozilla Firefox中的一切正常。当我使用带有tomcat和windows的chrome时一切正常。但是使用tomcat + linux和chrome,我在console.as
中看到了错误EventSource的响应有一个不是UTF-8的字符集(" iso-8859-1")。 中止连接。
可能是什么问题。修复是什么?请帮忙。任何帮助,将不胜感激。感谢。
答案 0 :(得分:4)
Tomcat默认支持charset:iso-8859-1。请尝试
@Produces("application/json;charset=UTF-8")
eventOutput.write(new OutboundEvent.Builder()
.id(decodedToken)
.name("responseBody")
.data(String.class, respBody.toString()).build());
答案 1 :(得分:4)
如果问题是在linux中使用tomcat,则可以更新bin \ startup.sh以下行
export JAVA_OPTS="-Dfile.encoding=utf-8"