gpt4 book ai didi

javascript - 在 Node.js 中发送文件之前如何设置 MIME 类型?

转载 作者:IT老高 更新时间:2023-10-28 22:10:31 24 4
gpt4 key购买 nike

从我的 Node.js 服务器向浏览器发送脚本时,在 Google Chrome 中,我收到以下警告:

Resource interpreted as Script but transferred with MIME type text/plain

我搜索了一下,发现这是一个服务器端问题,即我认为我应该在发送之前为事物设置正确的 MIME 类型。这是 HTTP 服务器的处理程序:

var handler = function(req, res)
{
url = convertURL(req.url); //I implemented "virtual directories", ignore this.

if (okURL(url)) //If it isn't forbidden (e.g. forbidden/passwd.txt)
{
fs.readFile (url, function(err, data)
{
if (err)
{
res.writeHead(404);
return res.end("File not found.");
}

//I think that I need something here.
res.writeHead(200);
res.end(data);
});
}
else //The user is requesting an out-of-bounds file.
{
res.writeHead(403);
return res.end("Forbidden.");
}
}

问题:如何更正我的服务器端代码以正确配置 MIME 类型?

(注意:我已经找到 https://github.com/broofa/node-mime ,但它只能让我确定 MIME 类型,而不是“设置”它。)

最佳答案

我想通了!

感谢@rdrey 的linkthis node module我设法正确设置了响应的 MIME 类型,如下所示:

function handler(req, res) {
var url = convertURL(req.url);

if (okURL(url)) {
fs.readFile(url, function(err, data) {
if (err) {
res.writeHead(404);
return res.end("File not found.");
}

res.setHeader("Content-Type", mime.lookup(url)); //Solution!
res.writeHead(200);
res.end(data);
});
} else {
res.writeHead(403);
return res.end("Forbidden.");
}
}

关于javascript - 在 Node.js 中发送文件之前如何设置 MIME 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com