场景:考虑以下代码,将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);
问题:强制浏览器下载文件。
问题:如何让它在浏览器上呈现?
注意:在.net Web服务中使用相同的HTTP标头:’content-type’,’text / javascript’
所以,其明确的以下声明并不好。
如果您希望Web浏览器呈现HTML,则应将其更改为:
Content-Type: text/html
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
http://www.iana.org/assignments/media-types/application
也可以在SO看到这个问题。
更新:
res.setHeader('content-type','text/javascript'); res.send(JS_Script);
这对我来说有用。
res.setHeader('content-type','text/javascript'); res.end(JS_Script);
如robertklep建议的,请参考node http docs,没有response.send()那里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。