Tag: xmlhttprequest

Cordova / phonegap&node.js:XMLHttpRequest返回状态0

我在node.js中写了一个HTTP服务器 var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World ' + request.url + '\n\n'); console.log(request.url); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/'); 这应该来自phonegap / cordova应用程序的请求: function testnodejs() { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Your webbrowser does not support HTTP Request"); return; } var url="http://domain.com:8124/it?hi=hi!"; console.log(url); document.getElementById("maindiv").innerHTML = "<div id='itembrd' onClick=\"testnodejs();\"><div id='item'>Nodetest</div></div>"; xmlHttp.open("GET", […]

在我的nodejs服务器防止xhr攻击

我正在开发一个nodejs服务器,它将与客户端移动应用程序进行交互。我在服务器上遇到了一些名为XSS和XHR的攻击。我遇到了一个名为node-validator的模块,这对于处理和validationinput非常有用。我需要一个想法是否XSS和XHR攻击有相同的效果,如果该模块是有用的两个。任何想法,这将是非常有益的。

XMLHttpRequest事件onProgress仅在文件完成上载时被触发

我有以下AJAX代码,脚本将文件正确地上传到服务器(节点快递)。 我面临的问题是,只有当总字节被下载(所以在file upload结束时),而不是在进程中,onProgress才被触发。 目前我无法在客户端显示file upload进度的一些界面。 我想知道这个问题是否与AJAX调用有关或可能与服务器有关。 var formData = new FormData(); var xhr = new XMLHttpRequest(); var onProgress = function (e) { if (e.lengthComputable) { var percentComplete = (e.loaded / e.total) * 100; console.log(percentComplete); } }; var onLoad = function (event) { var reponse = JSON.parse(xhr.responseText); this._logicAddWdg(reponse); }.bind(this); var onError = function (err) { console.log(onError); […]

使用XMLHttpRequest超时

所以我试图使用XMLHttpRequest的超时属性来“恢复”我的程序,当一个数据请求超时。 基本上,如果它检索数据失败,我希望它再次尝试。 目前我的代码看起来像这样(完整的URL被删除,以适应所有的整齐): function pullRequest(){ var xhr = new XMLHttpRequest() xhr.onreadystatechange = function() { if (this.readyState === 4) { jsonDecode = this.responseText; json = JSON.parse(jsonDecode); ask = (json.result.Ask); bid = (json.result.Bid); } } xhr.open("GET","<URL>",true); xhr.send(); } 我不完全遵循如何实现超时属性,或者如果它甚至要做我想要的。 我在xhr.open之后添加了以下两行,但是它抛出了错误: xhr.timeout = 5000; xhr.ontimeout = pullRequest() 基本上在我的脑海里,如果超时,再次运行pullRequest函数。 我相信这可能不是一个好主意,但我没有足够的经验知道为什么。 对于什么是值得的错误片段如下: …\node_modules\xmlhttprequest\lib\XMLHttpRequest.js:165 settings = { ^ RangeError: Maximum call […]

节点服务器接收XmlHttpRequest

我使用下面的代码发送会话描述(小JSON代码 – http://www.ietf.org/rfc/rfc2327.txt )。 function sendMessage(message) { var msgString = JSON.stringify(message); console.log('C->S: ' + msgString); path = '/message?r=67987409' + '&u=57188688'; var xhr = new XMLHttpRequest(); xhr.open('POST', path, true); xhr.send(msgString); } 我不知道如何去解决我的Node.js服务器上的JSON。

节点上的Mocha中的XMLHttprequest

我正在尝试使用node-xmlhttprequest 。 所以如果我这样做 // f.js (function() XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest xhr = new XMLHttpRequest() xhr.open('GET', "http://url-bla-bla.json", true) xhr.onreadystatechange = function(){ console.log("xhr "+JSON.stringify(xhr)) } xhr.send() )() 并将其称为node f (假设Access-Control-Allow-Origin不是http://url-bla-bla.json链接的问题 – 它起作用 但如果我尝试它包装同样的东西到摩卡规格 describe('foo',function(){ it('xhr test',function(){ XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest xhr = new XMLHttpRequest() xhr.open('GET', "http://url-bla-bla.json", true) xhr.onreadystatechange = function(){ console.log("xhr "+JSON.stringify(xhr)) } xhr.send() } } 并与mocha f运行(我甚至不必包装在摩卡规格) 它将无法正常工作并且失败,并且readyState […]

如何与Node.js和Expressasynchronous加载和显示网页内容?

作为JavaScript和相关框架的初学者,如果我的问题看起来很愚蠢,我很抱歉。 无论如何…是否有一些本地技术负载和显示网页内容与Node.js和Expressasynchronous? 是否应该使用XMLHttpRequest对象的目的或存在更好的select? 最好的问候,六。

当请求被中止时,如何取消Node.JS请求处理?

什么是正确的方法来停止一个节点服务器上的事件链,它在收到请求后被设置为运动,当该请求被取消时? 例如 当浏览器完成请求时按[escape]时,请求被中止。 当您在jQuery $.ajax()上调用.abort()时。 等等 只是提供一些HTML,这不会是一个大问题。 节点服务器渲染一些文本,没有人听输出。 没什么大不了的。 但是,当Node服务器实际上为响应做了大量的处理时,能够停止并使用其他的资源是很好的。 理想情况下,这是一种自我req的伎俩,所以我不必更改整批代码来单独取消每个约定。

CORS预检请求的奇怪问题在IE 11上失败

问题是,IE11上的POST查询失败,在所有其他浏览器似乎工作。 让我们一步步描述问题: 从应用程序到REST API的XHR请求。 预检选项请求(请求参数如下) Accept: */* Origin: https://app.example.com Access-Control-Request-Method: POST Access-Control-Request-Headers content-type, accept : Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko Host: api.example.com Content-Length: 0 Connection: Keep-Alive Cache-Control: no-cache 预检请求响应参数是: X-Powered-By: Sugar Access-Control-Allow-Origin: https://app.example.com Vary: Origin Access-Control-Allow-Credentia true ls: Access-Control-Allow-Methods: GET,POST,DELETE,OPTIONS Access-Control-Allow-Headers: X-Requested-With,X-HTTP-Method-Override,Content-Type,Accept set-cookie: sugar.sid=s%Pb9OoTTPUkVw%2F2vUPoFMNG LMXACSkQevo; Path=/; Expires=Thu, 15 […]

使用`request`和formData包含一个文件(客户端)

我试图从包含一个文件对象的客户端表单上传表单数据,但有问题使用request – https://github.com/request/request#forms 这会引发exception(由于文件对象): var request = require('request'); var myData = { a_key: 'a value!', a_file: fileInputElement.files[0] } request.post({url: 'http://foo.com/upload', formData: myData}); 这提交了一个空的请求: var formData = new FormData(); formData.append('a_key', 'a value!'); formData.append('a_file', fileInputElement.files[0]); request.post({url: 'http://foo.com/upload', formData: formData}); 当我不使用request时,我能够得到它的工作,而不是: var formData = new FormData(); formData.append('a_key', 'a value!'); formData.append('a_file', fileInputElement.files[0]); var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://foo.com/upload'); […]