设置Content-Type为text/plain导致页面黑底白字,求原因解析
问题解答
当你把Content-Type设置为text/plain时,浏览器会收到明确指令:这是纯文本内容,不要当作HTML解析,所以会触发浏览器针对纯文本的默认渲染样式——黑底白字就是这类样式的一种(不同浏览器可能略有差异,但大多会用类似代码预览的格式展示纯文本)。
你的预期是显示<h1>标签和对应文本,之所以没实现,是因为text/plain模式下,浏览器不会识别任何HTML标签,只会把<h1>hello world</h1>当成一串普通字符原样输出,自然不会渲染成一级标题的样式。
如果想让内容按HTML解析并正常显示,只需把Content-Type改为text/html(这也是Laravel返回HTML内容时的默认类型,甚至可以直接省略这个header设置,框架会自动处理):
Route::get('/hello', function () { return response("<h1>hello world</h1>")->header('Content-Type', 'text/html'); // 或者直接省略header,效果一样:return "<h1>hello world</h1>"; });
内容的提问来源于stack exchange,提问作者BishoDev
相关产品推荐
相关产品推荐

