Tag: cors

CORS POST请求返回空主体

正如从这个问题的后续阶段“ 使POST JSON请求从HTML脚本到另一个域中的Node.JS应用程序 ”,我实现了一个CORS POST请求: var request = new XMLHttpRequest(); var params = "parameter=test"; request.open('POST', 'http://localhost:3009/param_upload', true); request.onreadystatechange = function() {if (request.readyState==4) alert("It worked!");}; request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.send(params); 这是非常接近互联网的例子。 这是我在我的node.js服务器端的设置: app.use(cors()); var corsOptions = { origin: '*', credentials: true, allowedHeaders: ['*'], optionsSuccessStatus: 200 } 当然,我的app.post函数头里有cors(corsOptions)。 但不知何故身体是空的。 作为要求,我得到了一个很长的回应,里面没有testing文本。 我可能会错过一点,但环顾四周,找不到它。 如果有人帮忙,我会很高兴。

使用CORS与LocomotiveJs Rest API。 适用于本地机器,但不适用于Amazon或Heroku

使用CORS与LocomotiveJs Rest API。 适用于本地机器,但不适用于Amazon或Heroku 我使用LocomotiveJs做了一个REST api,现在我正在试图启用CORS。 我将下面的代码添加到我的“所有”环境(config / environments / all.js)。 this.use(function crossOrigin(req,res,next){ res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication"); res.header("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS"); return next(); }); 它在我的本地机器上工作,但是当我部署到Heroku或AWS时,我得到一个404 Http错误,当客户端发送OPTIONS命令。 为了隔离问题,我开发了一个简单的Express应用程序,使用下面的代码: var express = require('express'); var app = express(); app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With,Authentication"); next(); }); app.get('/test', function(req, res){ res.set('Content-Type', 'application/json'); res.send({ 'Hello' : 'World' }); }); var […]

CORS的“Access-Control-Allow-Origin”值如何暴露给浏览器?

在Node.js中,我理解在响应头中发送“Access-Control-Allow-Origin”值的语法,但是我很困惑这个值在服务器处理之前如何暴露给浏览器,因为响应头是稍后决定的,所以在处理请求之后,何时实际发送响应。 例如,用Express: /* Server */ var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); app.post('/login', function (req, res) { var username = req.body.username; var password = req.body.password; if (username !== "undefined"){ respondSuccess(req,res); } else { respondFailure(req,res); } }); app.listen(2222); 这里,不pipe是否存在“Access-Control-Allow-Origin”头,都取决于用户名未定义的结果。 function respondSuccess(){ body = "Success!"; res.writeHead(200, { 'Access-Control-Allow-Origin' : '*', 'Content-Length' […]

使用CORS仍然会产生交叉原点错误

我试图通过使用cors模块angular$http访问节点路由。 我试过一个简单的 app.use(cors()); 但仍然得到错误。 我已经尝试从cors文档中添加一个URL白名单 var corsOptions = { origin: function(origin, callback){ var originIsWhitelisted = whitelist.indexOf(origin) !== -1; callback(null, originIsWhitelisted); } }; app.get('/someroute/:someparam/', cors(corsOptions), function(req, res, next){ mymodule.getData(req.params.someparam, function(err, data){ if (err){ console.log('error with route', err); }else{ res.json({result: data}); } }); }); 但是我仍然得到错误 XMLHttpRequest无法加载localhost:8888 / someroute / undefined。 协议scheme仅支持跨源请求:http,data,chrome,chrome-extension,https,chrome-extension-resource。 我以为使用Cors模块是为了避免这个问题。 我该如何解决?

Javascript和angularjs使用CORS

我试图从使用$ http的网站获取信息,并且我诚实地查看了所有的东西,并且尝试了很多不同的东西,但我不确定如何设置“Access-Control-Allow-Origin” 。 我不确定我是否完全是误解,但是任何帮助真的很感谢,谢谢提前一吨! XMLHttpRequest无法加载http://nhlwc.cdnak.neulion.com/fs1/nhl/league/teamroster/NJD/iphone/cbrbroster.json 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:3000 '因此不被允许访问。 该响应具有HTTP状态码503。 这是我的代码: 来自rosterService的相关代码: (function(){ 'use strict'; var URL = 'http://nhlwc.cdnak.neulion.com/fs1/nhl/league/teamroster/NJD/iphone/clubroster.json'; angular .module("DevilsFanApp") .factory("RosterService", RosterService); function RosterService($rootScope, $http) { function fetchPlayers(callback){ return $http({ method: 'GET', url: URL, dataType: 'jsonp' }); } } })(); server.js: var express = require('express'); var app = express(); var ipaddress = […]

只是不能解决CORS问题

我只是不能打电话给我全function的API,因为我不断收到这个错误 – angular.js:9827 **OPTIONS http://xyz.mybluemix.net/add_user** (anonymous function) @ angular.js:9827sendReq @ angular.js:9628serverRequest @ angular.js:9344processQueue @ angular.js:13189(anonymous function) @ angular.js:13205Scope.$eval @ angular.js:14401Scope.$digest @ angular.js:14217Scope.$apply @ angular.js:14506(anonymous function) @ angular.js:16232completeOutstandingRequest @ angular.js:4905(anonymous function) @ angular.js:5285 welcome.html:1 **XMLHttpRequest cannot load http://xyz.mybluemix.net/add_user. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. […]

Node.js服务器提供阻止跨源请求

我的Node.js服务器代码正在AWS实例上运行。 它看起来像这样: var express = require('express'); var http = require('http'); var bodyParser = require('body-parser'); var logger = require('morgan'); var cors = require('cors'); var SuperLogin = require('superlogin'); var app = express(); app.set('port', process.env.PORT || 3000); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cors()); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header('Access-Control-Allow-Methods', 'DELETE, PUT'); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); […]

浏览器的CORS设置 – >网站 – > API服务器

我目前正在运行两个站点,一个基于PHP,一个基于node.js。 node.js版本是API,所以我们称之为“api.com” PHP网站(php.com)是基于HTML / JSangular度的可视网站“php.com”,使用angular度资源POSTs调用“api.com”。 所以一切都很好,直到最近我开始gettting这个错误。 MLHttpRequest cannot load https://api.com/create. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://php.com' is therefore not allowed access. The response had HTTP status code 400. 所以有几件事要注意。 该api.com是从一个https网站,其中PHP是http。 在node.js restify api.com网站,它正在做我认为是必要的CORS支持。 // Allow CORS since other sites may be […]

CORS问题使用生成的代码(SWAGGER)

我生成我的服务器代码( nodejs-server )基于我有的规格说明。 问题是,当我尝试从我的用户界面(不同的域)击中API时,我得到了知道CORS未启用的错误: XMLHttpRequest cannot load http://127.0.0.1:10010/events. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. 我生成的index.js如下所示: 'use strict'; var fs = require('fs'), path = require('path'), http = require('http'); var app = require('connect')(); var swaggerTools = require('swagger-tools'); var jsyaml = require('js-yaml'); var serverPort = 10010; // swaggerRouter […]

node.js表示一个非常奇怪的行为

我有一个运行的Express服务器。 我所做的是从HTML上传Excel文件,然后快速parsing该文件,并做一些计算。 在Excel文件中,每行都有关于用户地址的信息。 对于每个地址,我们的快递服务器将使用谷歌地图地理编码API来计算经度和纬度。 但是,由于Google不接受每秒超过50个地理编码API的请求,所以我不得不使用settimeout来延迟计算。 例如,如果Excel文件有50个地址,所以我必须在每个地址上使用settimeout来避免这个速率限制。 这里是我的代码使用settimeout并计算纬度,经度 createFromFile(req, res) { var form = new formidable.IncomingForm(); return form.parse(req, function (err, fields, files) { if (err) return res.status(500).json({error: err.message}) var workbook = new exceljs.Workbook(); return workbook.xlsx.readFile(files.excelfile.path).then(function() { // use workbook var worksheet = workbook.getWorksheet(1) var data = [] for (var i=2; i<=worksheet.rowCount; i++) { data.push({ from_name: worksheet.getCell('A'+i).value […]