Tag: http headers

Node.js:如何禁用分块传输编码?

我从一个节点服务器响应来自另一个位置的pipe道.zip文件的content-length标题。 我已经通过下面的代码注入了一个content-length头文件,但似乎transfer-encoding: chunked覆盖它以某种方式。 响应头 HTTP/1.1 200 OK access-control-allow-origin: * connection: close content-type: application/zip date: Mon, 14 Jul 2014 03:47:00 GMT etag: "\"eb939974703e14ee9f578642972ed984\"" last-modified: Sat, 12 Jul 2014 02:15:52 GMT server: Apache-Coyote/1.1 set-cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Sun, 13-Jul-2014 03:47:00 GMT transfer-encoding: chunked X-Powered-By: Express 码 var request = require('request'); var express = require('express'); var async = […]

Nodejs – HTTP范围支持/部分文件下载

我正在创build一个音乐networking应用程序,用于存储我在MongoDB(GridFS)中存储的MP3。 我的问题:如何添加HTTP范围支持,以便我可以开始stream式传输1/2audio文件,而无需等待缓冲区。 我知道GridFS支持读取X字节 – X字节,所以基本上我只需要知道如何让nodejs了解它只需要字节X – X. 谢谢!

有条件的服务基于“接受”标题的网页与快递?

我明白,您可以通过以下方式提供静态内容: app.use(express.static(__dirname + "../../../public_html")); 但是,我试图根据响应发送的“接受”头来明确更改其提供的内容的呈现方式。 通常情况下,我所拥有的内容是通过REST API以JSON格式请求的,因此url是: http://blah.com/this/that/item : http://blah.com/this/that/item ,效果很好。 但是,我也希望用户能够从浏览器访问相同的页面,这将发送类似于: Accept:text/html并因为该标题,看到具有正确的格式(CSS / JS / HTML /等等)呈现相同的信息。 现在,我试图通过以下方式提供内容: if (req.accepts("text/html")) { res.sendfile("/", { root: "../../../public_html" }); res.status(200); return; } 其中public_html保存index.html和与CSS和JS相关的目录。 我不会发送该文件,但是我认为这将是一个很好的开始,然后添加JSON内容后,我想出了如何提供基于Accept标头的静态内容。 有一个更好的方法吗?

Node.js请求中包含多个“Cookie”标头

我已经看到如何使用一个cookie进行请求,并且我已经看到如何使用多个cookie编写响应,但没有人知道如何使用http模块(如果可能)在多个node.js中编写请求“Cookie”标头? 到目前为止,我看到在node.js中发出请求的唯一方式是将一个对象作为parameter passing给一个函数,这需要两个相同的密钥。 headers = { Cookie: firstCookie, Cookie: secondCookie } 所以不会工作。 这是一个node.js问题,但是我对http没有太大的信心,所以我不确定是否没有办法在头文件中设置两个不同的cookie。 是否有可能连接成一个单一的头? 请求与两个单独定义的cookie不同,从一个单一的头包含两个?

不使用node.js / Expressredirect的标题

我对node.js,Express和移动开发相对比较陌生,并且遇到了一个我认为与使用Express发送头文件有关的问题。 用户从主页“/”开始,未login,然后单击button进入login页面。 当他们提交他们的用户名和密码到“/ validate_signin”时,他们应该被redirect回主页,这次主页以不同的方式显示,因为他们已经login了。 redirect是这样工作的: res.redirect('/'); 这在我的笔记本电脑上工作正常,但在我的手机上,它redirect到“/”,在旧的状态,大概是因为caching。 如果我刷新手机上的页面,则会显示“/”。 我发现这篇文章: 如何在所有浏览器上控制网页caching? 试图设置以下两种方式(单独)的标题,但他们似乎并没有发送: res.header("Cache-Control", "no-cache, no-store, must-revalidate"); res.header("Pragma", "no-cache"); res.header("Expires", 0); res.writeHead(302, { "location": "/", "Cache-Control" : "no-cache, no-store, must-revalidate", "Pragma": "no-cache", "Expires": 0 }); 这是我目前收到的标题: HTTP/1.1 304 Not Modified X-Powered-By: Express Date: Fri, 13 Jul 2012 17:35:18 GMT Cache-Control: public, max-age=0 Last-Modified: Fri, 13 Jul 2012 […]

用node.js读取传入的HTTP头

现在作为例子,我得到一个部分的关键/值作为一个JavaScript对象的响应: status: '200 OK', 'content-encoding': 'gzip' 我可以很容易地读出和logging状态消息:headers.status,但是当我尝试logging内容编码(我需要在这种特殊情况下)它的错误: headers.'content-encoding' <- obviously the quotes it doesn't like headers.content-encoding <- obviously the '-' it doesn't like 我想如何获取/读取/logging它的内容编码值? 映入眼帘, m0rph3v5

无法使用http-server wiki示例

我做了一个使用AngularJs的Web应用程序,用户可以使用ng-file-upload将.txtfile upload到服务器。 现在我想要一个简单的Node.js服务器来testing上传部分,并观察页面中的进度条和错误消息的行为, 但对Node.js和整个后端的工作方式知之甚less,我尝试使用由ng-file-upload提供的非常wiki的 Node.js服务器。 我试图做一些改变,把我带到这个app.js文件: var http = require('http') , util = require('util') , multiparty = require('multiparty') , PORT = process.env.PORT || 27372 var server = http.createServer(function(req, res) { if (req.url === '/') { res.writeHead(200, {'content-type': 'text/html'}); res.end( '<form action="/upload" enctype="multipart/form-data" method="post">'+ '<input type="text" name="title"><br>'+ '<input type="file" name="upload" multiple="multiple"><br>'+ '<input type="submit" value="Upload">'+ '</form>' ); […]

CORS错误:请求标头字段预检响应中的Access-Control-Allow-Headers不允许授权

我试图从一个本地主机端口发送请求到另一个。 我在前端使用angularjs,在后端使用angularjs 。 既然是CORS请求,在node.js中,我正在使用 res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH'); res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization'); 并在angular.js服务文件中,我正在使用 return { getValues: $resource(endpoint + '/admin/getvalues', null, { 'get': { method: 'GET', headers:{'Authorization':'Bearer'+' '+ $localStorage.token} } }), } 我收到以下错误 请求标头字段预检响应中的Access-Control-Allow-Headers不允许授权。 请帮忙!

为什么express-js不能设置Content-Type头?

我有以下几点: var express = require('express'), app = express.createServer(); app.get("/offline.manifest", function(req, res){ res.contentType("text/cache-manifest"); res.end("CACHE MANIFEST"); }); app.listen(8561); Chrome中的networking标签显示它是text/plain 。 为什么不设置标题? 上面的代码工作,我的问题是由一个旧版本的快速JS的链接引起的

Express.js – 如何为所有响应设置标题

我正在使用Express来处理Web服务,我需要将响应编码为utf-8。 我知道我可以对每个回应做以下的事情: response.setHeader('charset', 'utf-8'); 有没有一个干净的方式来设置所有的快递应用程序发送的响应标题或字符集?