Tag: xmlhttprequest

Node.js如何检测浏览器端已经结束了一个HTTP会话?

我试图用Node.js来实现Comet(XHR Streaming)。 由于XHR Streaming使客户端XHR.responseText不断增长,客户端需要closures当前的XHR并重新启动XHR Streaming。 在服务器端,对于每个XHRstream,HTTP.ServerResponse对象应保持到HTTP会话结束。 问题是:Node.js如何检测浏览器端已经结束了一个HTTP会话? 我想,理想情况下,http.ServerResponse.write有一个callback参数。 因此,写入一个closures的HTTP会话会触发callback,并让我们知道它被中止。 但是,没有这样的callback参数。

通过代理使用node-XMLHttpRequest?

我需要将我的node-XMLHttpRequest应用程序部署到使用代理访问Internet的服务器。 在该服务器的terminal上,我可以curl -d "" http://website/path ,它工作正常。 我认为在这种情况下, curl识别环境variableshttp_proxy 。 节点应用程序超时,因为它没有看到代理。 我怎样才能让节点应用程序使用代理? 例如,我可以使用http.globalAgent通过代理发送请求?

获取parse.com CloudCode的html源代码w / XMLHttpRequest.js

对于云代码(parse.com),我试图从另一个网站上刮取网页数据,但我一直无法获得网站的源代码作为一个string。 我尝试使用xmlhttprequest模块 var url = "www.targetWebsite.com"; var XMLHttpRequest = require("cloud/XMLHttpRequest.js").XMLHttpRequest; var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", url, false ); xmlHttp.send( null ); var doc = xmlHttp.responseText; 但是,当我尝试运行代码,我得到错误Module child_process.js not found 我假设在XMLHttpRequest.js文件中引用此行 var spawn = require("child_process").spawn 但是,我找不到下载文件夹中的child_process.js添加到目录。 有没有办法包含这个文件,还是有更好的方法来获取源代码? 编辑:使用httpRequest云function Parse.Cloud.define("pushFavorites", function(request, response) { var xpath = require("cloud/xpath.js"), dom = require("cloud/dom-parser.js").DOMParser; var doc; Parse.Cloud.httpRequest({ url: "website.com", […]

浏览器如何知道加载进度?

在浏览器中加载页面时,显示加载页面时加载的百分比。 与使用XMLHttpRequest(XHR)执行AJAX请求时一样,它允许您查看加载百分比。 我只是好奇这样的function是如何在幕后实现的。 客户如何知道预先收到的数据大小? 就我个人而言,当我使用Node.js创build我的Web服务器时,我没有手动实现这样的function,比如发送客户端的时间间隔为毫秒,等等。 这一切如何工作?

Chrome没有处理像Firefox,Safari这样的分块响应

我有一个testing节点服务器每隔几秒发送一次分块的响应,使用下列标题: response.setHeader('Content-Type', 'text/plain') response.setHeader('Transfer-Encoding', 'chunked') 每隔两秒钟,我就写出回应: response.write('Hello World'); 当我在端点上进行curl时,每隔两秒就会得到一个块: Hello World (wait two seconds) Hello World (wait two seconds) Hello World 它的工作原理就像curl一样。 对于我在客户端的Javascript,我build立了一个新的XMLHttpRequest并分配一个函数来打印出它的onprogress事件的responseText 。 这是实现在不同浏览器上的不同之处。 在Firefox和Safari中,我收到类似的行为,当我curl。 每个“Hello World”都会触发一个进行中的事件。 在Chrome中,只有在接收到所有块时才会触发onprogress事件,并在服务器端执行response.end() 。 而当我尝试打印出responseText ,只有一个空string打印出来。 以下是客户端代码的样子: var xhr = new XMLHttpRequest() xhr.onprogress = function() { // Firefox, Safari prints out an accumulation of the chunks // Chrome prints […]

XMLHttpRequest无法加载http://127.0.0.1:1337/。 请求的资源上没有“Access-Control-Allow-Origin”标题

我尝试使用Angular.js和本地运行的Node.js服务器从HTML页面发送和接收数据 app.controller("MainController", function MainController($scope, $http){ $scope.postIt = function() { //alert("posting…"); $http.post('http://127.0.0.1:1337/', {msg:'hello from Angular.js!'}) .success(function onSuccess(response){ console.log(response); $scope.$apply(function(){ $scope.testData = JSON.parse(response); console.log($scope.testData); }); }).error(function onError(){ console.log("AJAX failed!"); }); }; }); <div id='content' ng-app='MyTutorialApp' ng-controller='MainController'> <p> <a ng-click="postIt()"> Click here to load data. </a> </p> </div> <script src="bower_components/angular/angular.js" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script> <script src="maincontroller.js" type="text/javascript"></script> 那么我得到错误: […]

如何将FormData从Angular 2发送到nodejs?

我正在使用这个代码: var creds = "username=" + 'user' + "&password=" + 'password'; var headers = new Headers(); headers.append('Content-Type', 'application/x-www-form-urlencoded'); http.post('http://localhost:3000/', creds, { headers : headers }) .map(res => res.json()) .subscribe( data => this.logData(data), err => this.logError(err), () => console.log('Quote Complete') ); NodeJs在this.request.body上获得了json {username:'user',password:'password'}。 但我需要JSON像{字段:{用户名:'用户',密码:'密码'}}

CORS问题:请求的资源上没有“Access-Control-Allow-Origin”标题

var enableCORS = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); // intercept OPTIONS method if ('OPTIONS' == req.method) { res.send(200); } else { next(); } }; app.use(enableCORS); 我发现在服务器端使用下面的代码片段,但仍然当我尝试发布我得到的错误没有“访问控制允许来源”标题出现在请求的资源。

React webapp继续在PROD环境中加载本地主机资源

我已经部署了基于react-js的Web应用程序来制作环境,并且从浏览器控制台中,我可以看到有一些依赖代码停留在无休止的循环中,试图通过xhr从本地主机加载一些socketjs-node资源。 以下是我从浏览器控制台得到的消息: abstract-xhr.js:132 Mixed Content: The page at '[MY_WEBSITE_ADDRESS]' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://localhost:3000/sockjs-node/info?t=1469401504944'. This request has been blocked; the content must be served over HTTPS.o._start @ abstract-xhr.js:132(anonymous function) @ abstract-xhr.js:21 abstract-xhr.js:132 XMLHttpRequest cannot load http://localhost:3000/sockjs-node/info?t=1469401504944. Failed to start loading.o._start @ abstract-xhr.js:132(anonymous function) @ abstract-xhr.js:21 client:70 [WDS] Disconnected!l.onclose @ […]

刮Node Nodejs

我想用Nodejs来刮页面“ https://www.ukr.net/ua/news/sport.html ”。 我正尝试使用'request'npm模块进行基本的获取请求,例如: const inspect = require('eyespect').inspector(); const request = require('request'); const url = 'https://www.ukr.net/news/dat/sport/2/'; const options = { method: 'get', json: true, url: url }; request(options, (err, res, body) => { if (err) { inspect(err, 'error posting json'); return } const headers = res.headers; const statusCode = res.statusCode; inspect(headers, 'headers'); inspect(statusCode, 'statusCode'); inspect(body, […]