node, express app returns text/javascript response header (Content-Type) 尽管设置 application/javascript
node, express app returns text/javascript response header (Content-Type) in spite of setting application/javascript
我正在尝试从我的 express nodejs 应用程序 return jsonp,我不断得到 text/javascript 而不是 application/javascript(我认为应该是正确的 Content-Type ).我对 IE < 8 不感兴趣。当 return 结果如下所示时,我尝试设置 content-type 的各种方法如下:
// Method 1
res.setHeader('Content-Type', 'application/javascript');
res.status(200).jsonp(result);
// Method 2
res.format({
'application/javascript': function() {
res.status(200).jsonp(result);
}
});
// Method 3
res.set('Content-Type', 'application/javascript');
res.status(200).jsonp(result);
但无论如何,我得到的 Content-Type 总是 text/javascript 如下所示。我还在响应 headers 中得到了两次 'nosniff' header :-/ 我在我的 nginx.conf 文件中只有一次,我已经彻底检查过了。甚至做了 nginx -t,它说配置没问题。
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 12 May 2016 05:06:28 GMT
Content-Type: text/javascript; charset=utf-8
Content-Length: 433
Connection: keep-alive
Keep-Alive: timeout=5
X-Powered-By: Express
Vary: Accept
X-Content-Type-Options: nosniff
ETag: W/"1b1-1ZnUnapTaayP/+6QW4iqXQ"
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Strict-Transport-Security: max-age=315360000; includeSubdomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
我使用 nginx 作为反向代理使用 'upstream thingy'。我也在我的应用程序中使用 bodyParser。如果需要任何进一步的信息,请告诉我,因为我对 node/express 完全陌生。谢谢
恐怕内容类型在 Express 中是硬编码的。参见 here。
从表面上看,唯一的解决办法是自己重新实现 .jsonp()
(或者在 GitHub 上创建一个问题,让 Express 开发人员修复它)。
我正在尝试从我的 express nodejs 应用程序 return jsonp,我不断得到 text/javascript 而不是 application/javascript(我认为应该是正确的 Content-Type ).我对 IE < 8 不感兴趣。当 return 结果如下所示时,我尝试设置 content-type 的各种方法如下:
// Method 1
res.setHeader('Content-Type', 'application/javascript');
res.status(200).jsonp(result);
// Method 2
res.format({
'application/javascript': function() {
res.status(200).jsonp(result);
}
});
// Method 3
res.set('Content-Type', 'application/javascript');
res.status(200).jsonp(result);
但无论如何,我得到的 Content-Type 总是 text/javascript 如下所示。我还在响应 headers 中得到了两次 'nosniff' header :-/ 我在我的 nginx.conf 文件中只有一次,我已经彻底检查过了。甚至做了 nginx -t,它说配置没问题。
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 12 May 2016 05:06:28 GMT
Content-Type: text/javascript; charset=utf-8
Content-Length: 433
Connection: keep-alive
Keep-Alive: timeout=5
X-Powered-By: Express
Vary: Accept
X-Content-Type-Options: nosniff
ETag: W/"1b1-1ZnUnapTaayP/+6QW4iqXQ"
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Strict-Transport-Security: max-age=315360000; includeSubdomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
我使用 nginx 作为反向代理使用 'upstream thingy'。我也在我的应用程序中使用 bodyParser。如果需要任何进一步的信息,请告诉我,因为我对 node/express 完全陌生。谢谢
恐怕内容类型在 Express 中是硬编码的。参见 here。
从表面上看,唯一的解决办法是自己重新实现 .jsonp()
(或者在 GitHub 上创建一个问题,让 Express 开发人员修复它)。