Articles of http

Angular 2的http请求在新系统上处于挂起/取消状态

我发送http请求如下 this.http.post('/api/login', body) .subscribe( response => { … }, error=> { … }); 但是在新的系统中,它有待等待,然后有时取消。 加载一次后,再也没有发生在该系统上,并正常工作。 基本上我将所有客户端路由redirect到index.html。 如下: app.get(['/', '/login', '/dashboard'],function(req, res, next){ res.sendFile(path.join(__dirname,'/../public/index.html')); }); '/', '/login', '/dashboard'是我客户端的路由。 如下: @RouteConfig([ { path: '/', redirectTo: ['/Dashboard'] }, { path: '/login', component: Login, as: 'Login' }, { path: '/dashboard', component: Dashboard, as: 'Dashboard' } ])

XMLHttpRequest无法加载预检的响应无效(redirect)

我正在为Android做一个离子应用程序,今天我在cloud9上用mongodb实现了一个服务器端nodejs(express)Restful API。 但是,当我触发一个HTTP请求的url,我不断收到错误中提到的标题: 这是我对离子的angular度http请求(只是为了先testing): app.controller('DashCtrl', function($scope, $http, $q) { $http.get('https://[workspace]-[user].c9users.io/api/capture') .then(function(result) { console.log(result); }); }); 这是我的工作区的图像: 我用下面的代码来创build数据库:api.js var Capture = require('../models/capture'); module.exports = function(router) { router.get('/capture', function(req, res){ var capture = new Capture(); // capture.birdname = req.body.birdname; // capture.place.city = req.place.body.city; // capture.place.country = req.place.body.country; capture.birdname = "Pigeon"; capture.save(function(err, data){ if(err) throw err; res.json(data); }); […]

Nodejs集群模式如何处理HTTP保持连接?

如果HTTP连接保持活动状态,那么同一个工作人员是否会处理所有请求? 我希望有一个HTTP服务器处理所有networkingstream量,但是将每个请求的数据处理转交给随机的工作进程,即使这些请求是通过相同的HTTP(TCP)连接进入的: if (cluster.isMaster) { http.createServer(function(req, res) { worker.send(req, function(res) { // worker will generate response into callback parameter res.end(); }); }).listen(80); } else { process.on('message', function(msg) { // generate an http reponse but DO NOT SEND IT OUT A SOCKET, // return it to Master var res = generate_http_response_object(); process.send(res); }); } 这会工作吗?

使Node.js使用http_proxy,https_proxy和no_proxy环境variables

我有一个节点服务器,并基于最近的一些基础设施更改,我需要确保所有出站请求正在通过Squid代理,除了NO_PROXY环境variables中列出的主机的stream量外。 设置HTTP_PROXY,HTTPS_PROXY和NO_PROXY似乎不影响节点服务器的行为,但我需要一种方法来做到这一点,而无需手动编辑库。 我有10个图书馆需要考虑到这种代理行为的外部服务。 有没有其他方法可以全局设置代理行为,包括尊重NO_PROXY?

nodejs restful api返回错误状态-1在离子angularjs $ http

我的离子angularjs代码,我正在做一个get请求看起来像这样: .factory('Tasks', function($http) { return { all: function() { $http({ method: 'GET', url: 'http://localhost:3000/hello' }).then(function successCallback(response) { // this callback will be called asynchronously // when the response is available alert(JSON.stringify(response)) }, function errorCallback(response) { // called asynchronously if an error occurs // or server returns response with an error status. alert(JSON.stringify(response)) }); $http({ method: […]

节点请求库错误:getaddrinfo ENOTFOUND dns.js 26

我以连续的方式(每天多次请求一次)抓取网站,并且每次都使用asynchronous和请求节点模块。 我使用async eachLimit并行运行函数getPage(这里没有显示代码)。 但是,一旦在几千个查询中,我收到以下错误: Error: getaddrinfo ENOTFOUND 247sports.com 247sports.com:80 at errnoException (dns.js:26:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:77:26) 即使我知道我通过它的url是有效的。 我发现有人使用http模块的解决scheme,并得到相同的错误,但似乎没有人使用请求模块得到这个。 我知道我的IP没有被阻止,因为我可以在错误之后立即访问网站。 我也知道我的用户代理不是问题,因为我旋转了用户代理列表,所有这些都是有效的。 我的猜测是问题在于请求库与节点http模块交互的地方。 不幸的是,我无法准确地重现问题,因为当我同时或连续推送大量请求时,它似乎只是被触发。 下面的函数代码是我的函数的样子: function getPage(){ var options = { url: "http://stackoverflow.com/", headers: { 'User-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20110506 Firefox/4.0.1' }; request(options, function(err, resp, body) { if (err){ throw err; return; } PagesScraped++; […]

如何通过XMLHttpRequest创build并保存http长连接

让我说:我想创build一个http长连接。 // nodejs代码 router.get('/random', function (req, res, next) { res.writeHead(200, { "Content-Type": "text/event-stream", "Cache-Control": "no-cache", "Connection": "keep-alive" }); res.write("blabla\n"); }); // js代码 var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { console.log(xhr.responseText); } if (xhr.readyState == 3) { console.log('receive part of data' + xhr.responseText); setTimeout(function () { // ??????? […]

混淆了节点顺序规则(同步/asynchronous)

我的例子是一个简单的HTTP服务器: http.createServer((req, res) => { if(req.method === `GET`){ if(req.headers.cookie === undefined){ let x = 1 let y = 2 let z = 30 } else{ let x = 10 let y = 20 let z = 3 } switch(req.url){ case `/`: // >>>> I need the appropriate variables here for the same client <<<< break […]

读取angular2中的静态文件为string

我有一个这样的angular2组件: @Component({ selector: 'demo', template: ` <div [innerHTML]="content"></div> `; }) export class demoComponent { @Input() step: string; private content: string = ''; ngOnInit () { if (this.step === "foo") { this.content = "bar"; } } } 我想用一些逻辑来决定最合适的模板来渲染。 我在myDomain.com/templates上有一系列由express提供的静态html文件。 所以我需要能够“读取” ./templates/xyz.html到我的ng2组件中的string。 与fs.ReadFileSync中的fs.ReadFileSync API类似。 我怎样才能做到这一点? HTTP调用? 文件阅读器?

Nodejs在一个函数中循环http请求

我已经能够使用bluebird在一个函数中并行运行一个http get请求数组,这个函数完成之后会返回每个请求的响应。 不过,我希望按顺序链接请求,而不会影响下面显示的当前函数中承诺的asynchronous行为。 var Promise = require('bluebird'); function buildCartWithItems(cartID,requests, cookie) { var promises = []; for (idx in requests) { var request = requests[idx]; // requests is an array containing the json records of each request parameter request["id"] = cartID; promises.push(new Promise(function(resolve, reject) { var options = { host: 'example.com', path: "/example/addToCart?"+param(request), headers: {'Cookie': cookie, […]