You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于libmicrohttpd的C++ HTTP服务器在Emacs EWW中无法渲染HTML

解决Emacs EWW直接访问libmicrohttpd服务器显示原始HTML的问题

问题出在你的libmicrohttpd服务器返回HTTP响应时,没有正确设置Content-Type响应头。

Chrome会自动尝试识别内容类型,哪怕缺少Content-Type头也能正常渲染HTML;但Emacs EWW对HTTP响应头的要求更严格——如果服务器没明确返回text/html; charset=utf-8的Content-Type,EWW会把返回内容当成纯文本直接展示,不会解析渲染成HTML页面。而用eww-open-file打开本地文件时,EWW是根据文件内容或后缀直接识别为HTML,所以能正常渲染。

解决方案

在你的C++服务器代码里,发送HTML响应前,添加Content-Type响应头:

// 假设已创建MHD_Response对象response
MHD_add_response_header(response, "Content-Type", "text/html; charset=utf-8");

确保这个头在调用MHD_queue_response之前添加,这样EWW收到响应时,就能识别出这是HTML内容并正确渲染。

内容的提问来源于stack exchange,提问作者yuandaxing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:52:06