【发布时间】:2013-04-09 10:20:21
【问题描述】:
场景:考虑以下代码以提供 JavaScript 作为来自 Node.JS 服务器的响应。
var http = require('http');
http.createServer(function (req, res) {
var JS_Script = 'function Test() { alert("test success")}';
res.setHeader('content-type', 'text/javascript');
res.send(JS_Script);
}).listen(8811);
问题:强制浏览器下载文件。
问题:如何让它在浏览器上呈现?
注意:在 .net 网络服务中使用相同的 HTTP-header: 'content-type', 'text/javascript'
因此,其明确的以下陈述并不成立。
如果您希望 Web 浏览器呈现 HTML,则应将其更改为:
Content-Type: text/html
更新:在下载过程中检查content-typeapplication/octet-stream
但是当我用curl点击请求时,输出如下:
C:\>curl -is http://localhost:8811/
HTTP/1.1 200 OK
Content-Type: text/javascript
Content-Length: 166
Date: Tue, 09 Apr 2013 10:31:32 GMT
Connection: keep-alive
function Test() { alert("test success")}
【问题讨论】:
-
res.send()是 Express-ism,当您使用普通的http时不可用。所以我认为你的示例代码并不是你实际使用的 100%。 -
使用
application/javascript作为内容类型
标签: node.js