Tag: xmlhttprequest

使用XMLHttpRequest2设置Cookie

我试图设置一个cookie使用XMLHttpRequest。 我在XHR发布请求的响应中看到一个“Set-Cookie”头文件,但在document.cookie中看不到cookie。 这很好,但是我最终希望cookies不会暴露在JavaScript环境中,但是我没有看到任何后续的脚本请求,所以我认为cookie会自动附加到浏览器的请求中。 这是不正确的? 我对cookie是否被设置有点困惑,我可以用一些帮助来解决这个问题。 以下是客户端代码的样子: (function() { var xhr = new XMLHttpRequest(); var authUrl= "http://api.myserver.io/cookie" xhr.addEventListener("load", reqListener); xhr.open("POST", authUrl, true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.credentials = true; xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { debugger; // I'm not seeing anything in xhr.request } } var reqListener = function() { […]

如何处理Angular $ http中的Express response.write()响应

我试图用ng-file-upoad上传一个csv文件。 这是我的代码片段: Upload.upload({ url: baseUrl + '/file-upload', data: { file: file } }) .then(function(res) { console.log('success: ===> ', res); }, function(err) { console.log('erroir: ===> ', err); }, function() { console.log('progress: ', arguments); }); 而在节点环境中,我parsing文件并将数据插入到数据库中。 我不想closures连接。 这就是为什么我使用“response.write”。 这是我的代码片段: var path = req.files.file.path, currentIndex = 0; fs.readFile(path, 'utf8', function(err, data) { if(err) { // handle error } […]

S3设置Access-Control-Allow-Origin头

我正在尝试使用knox和node.js在S3上上传文件: var s3req = s3.putBuffer(buffer, fileName, { 'Access-Control-Allow-Origin': 'http://myurl.com', 'Content-Type': mimetype, 'Cache-Control': 'public, max-age=' + maxAge, 'x-amz-acl': 'public-read' }, function (err, s3res) { // do something 该file upload正常。 但是,使用XHR请求资源时,它在响应中没有Access-Control-Allow-Origin标头,因此失败。 是不是可以在一个资源上设置这个头文件? 我必须把它放在整个桶里吗?

如何使用Express 4和Multer保存文件?

我试图从FormData xhr请求保存传入的文件,但我甚至不能parsing传入的请求。 这是我如何发送文件: … let xhr = new XMLHttpRequest(), formData = new FormData(); for(let i = 0; i < this.files.length; i++) { formData.append(this.files[i], this.files[i].name); } xhr.open('POST', URL, true); xhr.send(formData); … 这就是我试图去捕捉它: var express = require('express'); var router = express.Router(); var multer = require('multer'); var uploads = multer({dest: './uploads/'}); router.post('/upload', uploads.any(), function (req, res) { console.log(req.files); […]

为什么不能安静的传递正文到数据库中

我正在创build一个RESTful API。 我想使用GET方法来检查lastName存在。 如果可以findlastName,则返回“YES”,否则,调用POST方法创build一个inputlastName的数据。 问题是它可以创build一个新的数据,但是它的主体是空的。 理想情况下,它应该包含lastName的值,如"lastName": "James", { "_id": "58a22c3c3f07b1fc455333a5", "__v": 0 } 这是我的代码。 router.route("/findLastName/:id") .get(function(req,res){ var response; mongoOp.findOne({deviceID: req.params.id}, function(err, result){ if (err) { response = {"error" : true,"message" : "Error fetching data"}; res.json(response); } if (result) { response = "YES"; res.send(response); } else { var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; var xhr = new XMLHttpRequest(); […]

通过本地节点JS HTTP服务器端口(运行在电子)angular度服务

我在我的电子应用程序中运行本地主机上的RESTful节点JS Http服务器。 我在端口0听,这样操作系统给我一个随机的自由端口。 我怎样才能访问我的angular码中的givin端口,以便能够知道哪些URL我必须执行XHTTP请求? 在127.0.0.1.0上运行的restapi服务器(nodejs) var listener = app.listen(port, server, function() { port = listener.address().port; console.log('Listening on port ' + port + '@' + server); }); XHTTP调用angular度 private heroesUrl = 'http://localhost:1337/api/heroes'; getHeroes(): Promise<Hero[]> { return this.http.get(this.heroesUrl).toPromise() .then( ((response) => response.json() as Hero[]) ) .catch(this.handleError); } 任何想法如何我可以取代固定端口1337端口,我打开在服务器端的侦听器时获得? 或者我应该只使用双方的固定端口,并希望它免费? 听起来对我错了。 另外我不能只用'/ api / heroes'作为URL,因为electron / angular正在http:// localhost:4200 […]

如果从服务器(meteor)调用GET响应内容为空,

所以我想要做的是在Meteor服务器端使用标准的HTTP包parsing这个基于XML的RSS源。 混淆的是,如果从服务器调用,我收到一个空的内容响应,但如果我从客户端调用相同的端点,那么我会收到一个正常的XML内容。 我尝试从使用Meteor.call的客户端调用服务器方法,也试图用meteorshell调用它。 同样的结果 这是Meteor方法: readRssFeed: function() { try { HTTP.get("http://agenda.regiolive.ch/feed/", {}, function(error, response) { console.log(response) //parse xml }); } catch (error) { console.log(error); } }, 答复是: I20170514-15:20:06.474(3)? { statusCode: 200, I20170514-15:20:06.474(3)? content: '', I20170514-15:20:06.474(3)? headers: I20170514-15:20:06.474(3)? { date: 'Sun, 14 May 2017 12:12:04 GMT', I20170514-15:20:06.474(3)? server: 'Apache-Coyote/1.1', I20170514-15:20:06.474(3)? 'access-control-allow-origin': '*', I20170514-15:20:06.474(3)? 'content-type': 'application/xml;charset=UTF-8', I20170514-15:20:06.474(3)? […]

尝试使用body-parser从Express v4parsingPOST请求中的JSON对象

我目前正在更多地介绍自己的服务器代码,特别是使用Node.js和Express,并且在接收和parsingPOST请求发送的JSON对象时遇到了很多麻烦。 我看了很多其他的post(链接到下面),我无法弄清楚我的生活出了什么问题。 以下是我所看到的: Javascript:用AJAX Javascript发送JSON对象:用Ajax发送JSON对象? 如何在Express应用程序中使用JSON POST数据如何使用Express应用程序中的JSON POST数据使用XMLHttpRequest 发送POST数据使用XMLHttpRequest发送POST数据如何在Node.js中提取POST数据? 如何在Node.js中提取POST数据? 所有这些都使我走上了正轨,但是我并不在那里寻求帮助。 这是我正在使用的代码: 发送POST请求 var button = document.querySelector("#button"); button.onclick = function(){ console.log("Getting data from local server"); var xhr = new XMLHttpRequest(); xhr.open("POST", "http://localhost:3000/data/test.json", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(JSON.stringify({"latitude": 41.2418, "longitude": -70.8898})); }; 在服务器中处理POST请求 var http = require("http"); var fs = require("fs"); var express = require("express"); var app […]

main.js:295 DELETE http://127.0.0.1:8081/messages/:0 405(方法不允许)在Javascript中

我试图发送JSON删除请求在JavaScript中的restful与nodeJS服务器删除聊天应用程序中的消息。 我试图通过请求头启用DELETE方法,但它不会工作.. 如何在这里启用DELETE方法? 这是客户端请求: function requestPoll(props) { return new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest(); xhr.open(props.method, props.action); xhr.timeout = 500; // time in milliseconds if (props.method === 'post') { xhr.setRequestHeader('Content-Type', 'application/json'); } xhr.addEventListener('load', function(e) { resolve(e.target.responseText); }); xhr.send(JSON.stringify(props.data)); }); } 在这里我发送请求: requestPoll({ method: "DELETE", action: "/messages/:"+i }); 和服务器代码: var http = require('http'); var […]

没有“Access-Control-Allow-Origin”

我面临这个问题: XMLHttpRequest无法加载http:// localhost:8000 / scripts / advaced_donwload / advancedUpload / vueupload / store.php 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:8080 '因此不被允许访问。 这是我的代码: storeMeta(file) { var fileObject = this.generateFileObject(file) return new Promise((resolve, reject) => { this.$http.post('http://localhost:8888/vueupload/store.php', { name: file.name }).then((response) => { fileObject.id = response.body.data.id resolve(fileObject) }, () => { reject(fileObject) }) }) }