Node.js res.setHeader(';内容类型';,';text/javascript';);将响应javascript作为文件下载推送 脚本:考虑下面的代码,将JavaScript作为响应从NoDE.js server中给出。 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 web服务中使用相同的Node.js res.setHeader(';内容类型';,';text/javascript';);将响应javascript作为文件下载推送 脚本:考虑下面的代码,将JavaScript作为响应从NoDE.js server中给出。 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);,node.js,Node.js,问题:强制浏览器下载文件 问题:如何在浏览器上进行渲染 注意:在.net web服务中使用相同的HTTP头:“内容类型”,“文本/javascript” 因此,其明确的以下声明并不适用。 如果希望web浏览器呈现HTML,应将其更改为: Content-Type: text/html 更新:在下载其应用程序/octet流时检查内容类型 但当我使用curl处理请求时,输出如下: C:\>curl -is http://localhost:8811/ HTTP/1.1 200 OK Cont
HTTP头:“内容类型”,“文本/javascript”
因此,其明确的以下声明并不适用。如果希望web浏览器呈现HTML,应将其更改为:
Content-Type: text/html
更新:在下载其应用程序/octet流时检查内容类型
但当我使用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")}
使用application/javascript
作为内容类型,而不是text/javascript
text/javascript
已过时。见参考资料
另请参见上的此问题
更新:
我试着执行你给的代码,但下面的代码不起作用
res.setHeader('content-type', 'text/javascript');
res.send(JS_Script);
这就是我的工作
res.setHeader('content-type', 'text/javascript');
res.end(JS_Script);
正如robertklep所建议的,请参阅,那里没有响应。send()
。您可以直接设置内容类型,如下所示:
res.writeHead(200, {'Content-Type': 'text/plain'});
查看nodejs文档以供参考。res.send()
是一种快速ism,使用纯http
时不可用。因此,我认为您的示例代码并不是您实际使用的100%。使用application/javascript
作为内容类型setHeader
甚至不受尊重,因此还有其他问题。