Node.js res.setHeader('content-type','text / javascript'); 推送响应JavaScript作为文件下载
场景 :考虑下面的代码,将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.end(JS_Script); }).listen(8811);
问题 :它迫使浏览器下载文件。
问题 :我怎样才能让它在浏览器上呈现?
注意 :在具有相同HTTP-header: 'content-type', 'text/javascript'
.net Web服务中工作HTTP-header: 'content-type', 'text/javascript'
所以,其明确的以下陈述并不成立。
如果你想要一个Web浏览器来呈现HTML,你应该改变它:
Content-Type: text/html
更新 :在下载application/octet-stream
期间检查content-type
但是,当我用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
作为内容types而不是text/javascript
text/javascript
被提到过时。 请参阅参考文档 。
http://www.iana.org/assignments/media-types/application
也看到这个问题上。
更新:
我已经尝试执行你已经给出的代码,下面没有工作。
res.setHeader('content-type', 'text/javascript'); res.send(JS_Script);
这是为我工作。
res.setHeader('content-type', 'text/javascript'); res.end(JS_Script);
正如robertklep所build议的,请参考节点http docs ,那里没有response.send()
。
您可以直接设置内容types,如下所示:
res.writeHead(200, {'Content-Type': 'text/plain'});
通过nodejs Docs 链接进行参考。
- 如何使用Express和oAuth2让用户在Angular的多个设备上login?
- 如何将数据从casperJS传递到nodeJS?
- 在NW.js中检查WebKit上下文何时可用
- 无法获取rollbar.js来构build基于节点/ webpack的项目
- 生成伊斯坦布尔代码覆盖率报告为茉莉花testing运行(通过咕噜)phantomjs的一个browserify包
- 使用除ObjectId以外的SchemaTypes(Mongoose)
- Nodejs + Mongodb:聚合后查找数据
- 当我在当地安装饮用水时,我应该怎样处理166个项目?
- 如何使用HTMLWebpackPlugin通过webpack加载图像?