Articles of http headers

节点js / Angular js – 小心:临时标题显示

这是我的Angular js代码: $http({ method:'POST', withCredential:true, url:$scope.config.app_ws+'auth/signup', data:{user:$scope.auth} }).success(function(status, response){ console.log(response); }).error(function(status, response){ alert(response+'Bummer 🙁 , an error occured plese retry later. '); }); 这是我的Node.js片后端: var allow_cross_domain= function(req, res, next) { res.header('X-Powered-By', 'hey.heyssssssss.org'); var oneof = false; if(req.headers.origin) { res.header('Access-Control-Allow-Origin', req.headers.origin); oneof = true; } if(req.headers['access-control-request-method']) { res.header('Access-Control-Allow-Methods', req.headers['access-control-request-method']); oneof = true; } if(req.headers['access-control-request-headers']) { res.header('Access-Control-Allow-Headers', […]

如何通过假设一个默认的内容typesparsingExpress / NodeJs中的缺less内容types的HTTP请求?

如果快速bodyParser不启动,我怎么能访问POST请求中的数据? var server = express(); server.use(express.bodyParser()); server.post('/api/v1', function(req, resp) { var body = req.body; //if request header does not contain 'Content-Type: application/json' //express bodyParser does not parse the body body is undefined var out = { 'echo': body }; resp.contentType('application/json'); resp.send(200, JSON.stringify(out)); }); 注意:在ExpressJs 3.x + req.body不是自动可用的,需要bodyParser来激活。 如果没有设置内容types标题,是否可以指定application/json的默认内容types并触发bodyParser ? 否则是否可以从这个快速POST函数内使用裸nodejs方式访问POST数据? (例如req.on('data', function… )

如何获取Node / Express中当前设置的HTTP响应头列表?

据我所知,当你在node / express或者其他东西中构build一个http响应时,这个过程主要由两个非连续的步骤组成:定义Headers和构造主体。 标题包括Set-Cookie标题。 在Express中,以下方法可用于设置标题的响应对象: res.append(); // To append/create headers res.cookie(); // A convenience method to append set-cookie headers. 由于头只是被缓冲,而不是实际发送,直到发送响应,是否有任何方法或机制,以获得当前列表头设置,连同它们的值,如: headers = res.getHeaders(); //Returns an object with headers and values headers = res.getHeaders('Set-Cookie'); // To get only select 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>' ); […]