![](/img/trans.png)
[英]Node.js - "TypeError - res.setHeader is not a function"
[英]Node.js res.setHeader('content-type', 'text/javascript'); pushing the response javascript as file download
場景:考慮以下代碼,將 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);
問題:它強制瀏覽器下載文件。
問題:如何讓它在瀏覽器上呈現?
注意:使用相同的HTTP-header: 'content-type', 'text/javascript'
在 .net 網絡服務中工作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
作為內容類型而不是text/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 所建議的,請參考 節點 http docs ,那里沒有response.send()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.