我正在尝试在端口8000上运行我的节点js程序,但它下载输出而不是在浏览器上查看。
var http = require('http');
function onRequest(request, response){
response.writeHead(200, {'Content-Type' : 'plain/text'});
response.write("hi");
response.end();
}
http.createServer(onRequest).listen(8000);
答案 0 :(得分:0)
当您关闭MIME类型时会发生这种情况。您使用的是plain/text
,而正确的MIME类型是text/plain
。由于它的排版而非逻辑错误,我已经标记要关闭这个问题,但我会留下一些关于其他人在问题评论中注意到的问题的说明,只是为了提供一点点。对于任何可能偶然发现这个问题的人来说都很重要。
许多评论者都说正确的主流浏览器认为MIME类型text/plain
是用于文件下载的,因为许多服务器配置错误,无法为某些文件返回text/plain
。正如已经指出的,一些浏览器将试图嗅探"如果正在使用正确的MIME类型,数据会尝试推断。这主要出现在Chrome和Internet Explorer中。 Firefox在相对于MIME类型不正确的样式表的链接方面已经看了很长时间,但出于安全考虑,它已被删除以供外国URL使用。最简单的方法是在响应中添加X-Content-Type-Options
标头,并为其赋值nosniff
。这将有助于防止浏览器尝试猜测MIME类型,这有时会产生意外结果,尽管不是在这种情况下。