Tag: xmlhttprequest

WebSockets vs XHR的大量数据

我在NodeJS上运行SocketIO,我并不关心广泛的浏览器支持,因为它是我的宠物项目,我希望利用新技术的所有function来简化开发。 我关心的是如何从服务器向客户端发送大量的JSON数据。 那么,这些数量并不像video或图像二进制数据那么大,我认为每个请求不会超过几百KB。 我看到的两个场景是: 通过WebSockets从服务器发送一个通知给客户端,一些数据应该被获取。 然后客户端代码运行一个普通的XHR请求到服务器,并通过XHR获取一些数据。 通过WebSockets从服务器发送整个数据集到客户端。 在这种情况下,我不需要运行任何额外的请求 – 我只是通过WebSockets获取所有的数据。 我看到了Meteor.js的第一个例子,所以我想知道它的原因。 请分享您的意见。

Node.js – 使用XHR强大的上传

我尝试实现一个简单的XHR上传到Node.js(通过Formidable )。 问题是,如果我设置 xhr.setRequestHeader("Content-Type", "multipart/form-data"); 节点给我错误: Error: bad content-type header, no multipart boundary 如果我将边界设置为随机string,则不会发生任何事情 浏览器挂在POST上并等待服务器响应。 重点是,如果我使用强大的常规同步POST一切工作正常。 任何人都试图用XHR上传使用Formidable ?

如何使用node.js和Request包禁用HTTP头中的“withcredentials”?

从浏览器(通过browserify )使用node.js和Request包,我使用CORS在单独的域上执行HTTP GET请求。 在服务器上,当我将'Access-Control-Allow-Origin'设置为通配符'*' ,客户端上出现以下错误: XMLHttpRequest无法加载….当凭证标志为真时,通配符“*”不能在“Access-Control-Allow-Origin”标头中使用。 原因'…'因此不被允许访问。 HTTP请求标题如下所示: Accept:*/* Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8,ja;q=0.6 Access-Control-Request-Headers:withcredentials Access-Control-Request-Method:GET Cache-Control:no-cache Connection:keep-alive Host:localhost:3000 Origin:http://localhost:9966 Pragma:no-cache Referer:http://localhost:9966/ User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 所以清楚的问题是Access-Control-Request-Headers:withcredentials在头文件中Access-Control-Request-Headers:withcredentials ,对不对? 为了能够删除这个,我需要将'XMLHttpRequest'对象的'withcredentials'属性设置为'false'。 然而,我无法弄清楚node.js或Request包在创build“XMLHttpRequest”对象,我甚至可以访问它。 谢谢。

如何在node.js http.request中发布XML数据

我想通过使用http.request Node.js提交一个XML请求到一个Web服务。 这是我的代码。 我的问题是,而不是data=1我想发布到服务的XML。 http.request({ host: 'service.x.yyy.x', port: 80, path: "/a.asmx?data=1", method: 'POST' }, function(resp) { console.log(resp.statusCode); if(resp.statusCode) { resp.on('data', function (chunk) { console.log(chunk); str += chunk; }); resp.on('end', function (chunk) { console.log(str); }); } }).end(); 何要这样做?

Angular资源如何保持ajax头文件并同时启用cors

在我的ng资源文件中,我启用了ajax头文件: var app = angular.module('custom_resource', ['ngResource']) app.config(['$httpProvider', function($httpProvider) { //enable XMLHttpRequest, to indicate it's ajax request //Note: this disables CORS $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; }]) app.factory('Article', ['$resource', function($resource) { return $resource('/article/api/:articleId', {articleId: '@_id'}, { update: {method: 'PUT'}, query: {method: 'GET', isArray: true} }) }]) 因此,我可以分开ajax和非ajax请求和响应(发送像res.json(data) json数据,或发送像res.render('a.html')整个HTML页面 例如,在我的error handling程序中,我需要决定渲染error.html页面或仅发送错误消息: exports.finalHandler = function(err, req, res, next) { res.status(err.status […]

CORS pre-flight返回访问控制允许来源:*,浏览器仍然失败的请求

触发一个AJAX GET到http://qualifiedlocalhost:8888/resource.json启动预计的CORS pre-flight,这看起来像是回来了: 飞行前OPTIONS请求 Request URL:http://qualifiedlocalhost:8888/resource.json Request Method:OPTIONS Status Code:200 OK 请求头 Accept:*/* Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Access-Control-Request-Headers:accept, origin, x-requested-with Access-Control-Request-Method:GET Cache-Control:no-cache Connection:keep-alive Host:qualifiedlocalhost:8888 Origin:http://localhost:9000 Pragma:no-cache Referer:http://localhost:9000/ User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36 响应头 Access-Control-Allow-Headers:Content-Type, X-Requested-With Access-Control-Allow-Methods:GET,PUT,POST,DELETE Access-Control-Allow-Origin:* Connection:keep-alive Content-Length:2 Content-Type:text/plain Date:Thu, 01 Aug 2013 19:57:43 GMT Set-Cookie:connect.sid=s%3AEpPytDm3Dk3H9V4J9y6_y-Nq.Rs572s475TpGhCP%2FK%2B2maKV6zYD%2FUg425zPDKHwoQ6s; Path=/; HttpOnly X-Powered-By:Express 看起来不错? 所以它应该工作,对吧? […]

使用Express 4parsingNode.js中的JSON发布请求

我试图写一个简单的Express应用程序,收到一个Post请求中的JSON。 这是我到目前为止在服务器上: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); app.post('/acceptContacts', function(req, res) { 'use strict'; console.log(req.body); console.log(req.body.hello); res.send(200); }); app.listen(8080); 这里是我在浏览器上的客户端上的东西: var req = new XMLHttpRequest(); req.open('POST', 'http://localhost:8080/acceptContacts?Content-Type=application/json'); var obj = {hello:'world'}; req.send(JSON.stringify(obj)) 但是,我在服务器的控制台上收到以下输出: {} undefined 任何人都可以提出原因?

XMLHttpRequest模块未定义/find

这是我的代码: var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest(); xhr.open("GET", "//URL") xhr.setRequestHeader("Content-Type: application/json", "Authorization: Basic //AuthKey"); xhr.send(); 我收到错误: Cannot find module 'xmlhttprequest' 当我删除第一行时,我得到: XMLHttpRequest is not defined 我已经搜遍遍了,人们提到Node.js在这里和那里的问题,但我的安装节点是正确的,所以我不知道是什么问题。

为什么使用setRequestHeader进行xmlhttprequest时,无法设置cookie和set-cookie头?

我想知道为什么不能使用setRequestHeader设置cookie头。 是否有任何特定的原因,或只是他们被浏览器本身添加,所以这些头被禁用? 有没有安全问题? – 编辑 我正在使用node.js并使用xmlhttprequest模块。 以下是testing代码: var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.withCredentials = true; xhr.setRequestHeader('Cookie', "key=value"); xhr.send(null); 在这里,我需要设置Cookie标头为node.js' xmlhttprequest不显式添加cookie标头(如浏览器一样)。 当试图这样做, xmlhttprequest给出错误“ Refused to set unsafe header ”。 虽然我find了一个补丁并成功地发送了cookie头文件。 但想知道为什么它被禁用设置Cookie标头? 在我读过的地方,发现它是数据完整性和安全性所必需的,但在这种情况下可以违反什么安全性,在哪里没有提及。 我想评估这个数据完整性问题是否适用于node.js应用程序,以及如果我使用我的补丁。