Articles of http

在Hapi.js中我可以redirect到一个不同的端点并设置一个statusCode?

如果用户没有通过authentication来查看特定的路由(例如: /admin ),Auth会抛出一个Boom unorthorized错误我希望能够Boom unorthorized到/login但仍然返回401 HTTP statusCode 。 我们已经尝试了下面的代码: const statusCode = request.output.payload.statusCode; if(statusCode && statusCode === 401) { return reply.redirect('/login').code(statusCode); } 当我们删除.code(statusCode)时, redirect工作,但我们理想地将401代码返回到客户端而不是302 ( redirect ) 或者 …是否是“ 最佳做法 ”返回302 …? 上下文:我们正在开发一个(可重用的 )插件来处理我们的Hapi App / API中的错误,其中一个特性是当auth失败时redirect到/login请参阅https://github.com/dwyl/hapi-错误#redirect到另一个端点 ,我们希望得到它“ 正确 ”,以便其他人可以使用它!

在使用AngularJS发送GET请求时,无法从WebStorm IDE执行“打开”无效URL

我启用了CORS模块并在我的nodeJS服务器代码中设置了必需的选项。 我能够从我的浏览器发送GET请求到给定的URL并获得响应。 但是当我试图执行下面的代码发送一个GET请求使用WebStorm IDE的内置服务器的以下AngularJS代码时,我得到以下错误。 city name Delhi error SyntaxError: Failed to execute 'open' on 'XMLHttpRequest': Invalid URL 代码如下。 mainApp.controller('dController', function($scope,$http) { this.ccaid = { city:'', circle:'', area:'', }; this.getCircle=function(){ console.log('city name ' + this.ccaid.city); $http({ method: 'GET', crossDomain:true, url: 'xx.xxx.xx.xx:3000/fetchCityArea', params:{city:this.ccaid.city} }).then(function(success){ console.log('response ' + success); },function(error){ console.log('error ' + error); }); }; }); URL没有问题,但仍然无法发送GET请求。 […]

创build一个可以在发送给客户端之前修改http响应的http代理

我正在使用wget从网上抓取一些东西,但我不想跟随页面的一部分。 我以为我可以设置一个代理,它会删除我不想处理的网页的部分,然后将其返回给wget,但我不知道我将如何实现这一点。 有没有一个代理,让我轻松地修改在Python或Node.js HTTP响应?

使用node.js HTTP,res.end()如何保证socket的连接?

这是node.js的end实现: OutgoingMessage.prototype.end = function(data, encoding) { if (this.finished) { return false; } if (!this._header) { this._implicitHeader(); } if (data && !this._hasBody) { console.error('This type of response MUST NOT have a body. ' + 'Ignoring data passed to end().'); data = false; } var ret; var hot = this._headerSent === false && typeof(data) === 'string' && […]

chunk数据logging在node.js中

我有一个http.request()内的node.js中的以下function: res.on('data', function (chunk) { var sr="response: "+chunk; console.log(chunk); }); 我在控制台中得到这个 <Buffer 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 20 3f 3e 3c 72 65 73 […]

如何在node.js的http响应中获取主机名?

我正在使用node.js的http模块来提出请求。 我有一堆的数据库中的url。 我正在从数据库中获取这些url,并在循环中发出请求。 但是,当响应来了,我想获得该响应的主机名,因为我想根据该响应更新数据库中的东西。 但我没有得到哪个网站得到回应,所以我无法更新该网站的logging。 代码是这样的: for (site = 0; site < no_of_sites; site++) { options = { hostname: sites[site].name, port: 80, method: 'GET', headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0' } }; var req = http.request(options, function (res) { console.log('HEADERS: ' + JSON.stringify(res.headers)); if (res.statusCode == 200) { //Update record; } […]

Node.js HTTP服务器 – 如何保护

目前我的HTTP服务器有以下configuration: curl -i http://localhost:3000 HTTP/1.1 200 OK Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS Access-Control-Allow-Credentials: true Access-Control-Max-Age: 86400 Access-Control-Allow-Headers: X-Requested-With, Access-Control-Allow-Origin, X-HTTP-Method-Override, Content-Type, Authorization, Accept Date: Tue, 10 Dec 2013 22:31:40 GMT Connection: keep-alive Transfer-Encoding: chunked 尊重访问控制条目。 这些表明服务器的发送和接收是什么? 我最好尽可能地减less这个清单? 这是否意味着服务器可能更安全,因为访问它的方法较less? 谢谢

http.request的url http://freegeoip.net/json/14.12.111.113

嗨,我想写一个节点服务器代码来检索经纬度信息从http://freegeoip.net/json/14.12.111.113 ia总是得到这个错误。 Exception: Error: getaddrinfo ENOTFOUND Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) at Object.onanswer [as oncomplete] (dns.js:124:16) 有人可以帮忙吗? 这里是我使用的代码.. var options = { host: 'http://freegeoip.net/', path: 'json/14.12.111.113', method: 'GET' }; var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); […]

了解Express.js中间件的优先级

我正在阅读Express.js API参考中的两个示例,但我没有得到它们。 实例1 现在假设你想忽略对静态文件的logging请求,但是继续logginglogger()之后定义的路由和中间件。 你可以简单地移动它上面的static(): app.use(express.static(__dirname + '/public')); app.use(logger()); // other middleware 这是如何导致对静态文件的请求不被logging的? 是不是所有的中间件都是按照顺序执行的? 实例2 另一个具体例子是从多个目录提供文件,优先于“./public”而不是其他文件: app.use(express.static(__dirname + '/public')); app.use(express.static(__dirname + '/files')); app.use(express.static(__dirname + '/uploads')); 我怀疑,例如“/js/stuff.js”这样的请求,第一个中间件会检查“/public/js/stuff.js”是否存在。 如果是这样的话,这个中间件就处理这个请求,而后续的中间件都不会被执行 (类似于早期的返回)。 如果这条path不存在,则这个中间件将请求传递给下一个中间件。 它是否正确? 请解释两个例子!

node.js http模块http.createServer它是如何工作的?

所以我想了解如何使用node.js模块“http”http.createServer()我不知道是否有可能看到这个函数是如何定义的? 我可以find定义的内容吗? 我无法find它