Tag: cors

在Express中设置默认的响应标题

我正在一个运行在MEAN堆栈上的小应用程序,并且遇到了一个烦人的障碍:我的后端应用程序(Node with Express )在http://localhost:3000 ,工作正常,但是我的前端客户端应用程序Javascript与AngularJS)运行在http://localhost:8000 ,这意味着从Angular发送的请求将被接收并作出响应,但一旦到达,就会被拒绝,因为它们被解释为来自不同的来源。 我能够用相对较less的戏剧来解决这个问题,通过使我的“展示我所有的东西”的方法看起来像这样: exports.index = function(req, res) { Region.find({}, function(err, docs) { if(!err) { res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8000'); res.json(200, { regions: docs }); } else { res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8000'); res.json(500, { message: err }); } }); } res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8000'); 行是我添加的告诉浏览器可以接受的反应,并停止打扰我; 现在的问题是,我必须将这个愚蠢的行添加到从任何地方发送的每一个响应中,并且我确信我必须错过某种方法来更改默认标题以永远包括Access-Control-Allow-Origin条目。 在一个完美的世界里,我可以根据代码被执行的环境来打开和closures,但是我完全可以在app.js中定义一个代码块,我至less可以删除一个代码块试图追踪res.setHeader 75个实例。 我认为必须有一种方法来改变隐藏在其基础之后的.json方法,但是文档并没有提供任何有关如何做到这一点的信息,更不用说它是否是一个可怕的想法。 有什么想法吗? 编辑 我认为(如所build议的那样) configuration应用程序级中间件是关键。 以下是我添加到我的app.js文件中的代码: // allow CORS: app.use(function (req, […]

没有'Access-Control-Allow-Origin'标题问题与hapijs

嗨,我有我的Facebook应用程序的问题。 当我开始authentication后,它给了我这个错误: XMLHttpRequest无法加载http:// localhost:8000 /信息。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'http:// localhost:8080'因此不被允许访问。 :8080 / carRandomizer:1 XMLHttpRequest无法加载http:// localhost:8000 / rand。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'http:// localhost:8080'因此不被允许访问。 所以我明白这是一个CORS的问题,我已经尝试遵循官方文档http://hapijs.com/api#serverrouteoptions ,现在我在我的server.js文件上设置: server.connection({port:process.env.PORT,routes:{cors:true}}); 现在我有同样的错误: XMLHttpRequest无法加载https://www.facebook.com/v2.3/dialog/oauth?client_id=1463042613952341&respo…k&state=URaCt6cXqf_JzJYgS9KlwM&scope=public_profile%2Cuser_friends%2Cemail。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因'null'因此不被允许访问。 angular.js:12330(匿名函数)@ angular.js:12330(匿名函数)@ app.js:817(匿名函数)@ angular.js:14567a。$ get.n. $ eval @ angular.js:15846a。 $ get.n. $ digest @ angular.js:15657a。$ get.n. $ apply @ angular.js:15951l @ angular.js:10364F @ angular.js:10536e @ angular.js:10487:8080 / carRandomizer: 1 XMLHttpRequest无法加载https://www.facebook.com/v2.3/dialog/oauth?client_id=1463042613952341&respo…k&state=j-vSbeB6rGvEi_cgu-9TrM&scope=public_profile%2Cuser_friends%2Cemail。 […]

使用Angular vs Node.js获取图像尺寸

我对发现图像尺寸或图像的自然宽度的最佳方法感到困惑,它给出了图像的url,最常见的是在<img>标签的src属性中find。 我的目标是把新闻文章的一个url作为input,并使用机器学习来查找文件中前五个最大的图片(.jpg,.png等)文件。 使用前端执行此操作的问题是,我不知道从某些随机服务器的某个随机页面使用AJAX到http GET的方式,因为CORS相关的问题。 但是,使用Node.js或某些服务器技术,我可以请求从其他服务器获取HTML(如所期望的那样),但我不知道如何在不下载图像的情况下获取图像大小。 问题是,我想下载的图像在前端,而不是后端,因此下载图像与Node.js是浪费精力,如果它只是检查图像的尺寸。 有没有人遇到过这个确切的问题? 不知道如何继续。 正如我所说的,我的目标是在前端下载图像,并保留宽度大于300px的图像。

发送来自android的使用'离子运行android'到nodejs本地主机服务器的请求

我正在使用'离子运行android'来运行我的设备上的离子应用程序,连接到我的笔记本电脑进行检查。 我也在笔记本电脑的localhost:3000端口上运行节点js服务器。 1)如何从我的设备上运行的离子应用程序发送请求到本地在我的笔记本电脑上运行的服务器。 2)什么是我需要发送请求的url? 是'localhost:3000'吗? 是我的实际IP(XXXX:3000)? 谢谢!

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); 我发现在服务器端使用下面的代码片段,但仍然当我尝试发布我得到的错误没有“访问控制允许来源”标题出现在请求的资源。

使用CORS请求设置Cookie

我一直在试图解决这个问题几天。 在CORS请求上设置Cookie。 我见过有冲突的文章和答案,有人说,只要XHR请求将withCredentials设置为true,并且服务器发送适当的头文件,浏览器应该尊重Set-Cookie头文件。 不过,在我的testing中,情况并非如此。 示例代码: index.js(Node.js服务器) const http = require('http'); const fs = require('fs'); // Pretty colors const colors = { purple: '\033[95m', orange: '\033[93m', blue: '\033[97m', underline: '\033[4m', bold: '\033[1m', reset: '\033[0m' } const server = http.createServer(function (req, res) { //Console logs to verify what's getting hit. console.log(colors.purple + colors.underline + 'Hit it!' + […]

Angular / Node CORS问题

我正在服务器端build立一个节点js的Web应用程序,并在客户端build立angular度。 我正在运行不同的域上的服务器和其他域上的客户端。 我的服务器端代码: var express = require('express'); var app = express(); var http = require("http").createServer(app); var request = require('request'); app.use(function(req, res, next) { console.log(req.headers); res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization"); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); next(); }); app.get('/api/hello', function(req, res){ var data = {'message': 'Server is running'} res.jsonp(data); }); http.listen(5000); 和在客户端(Angular)。 angular.controller('myController', function($state, $http){ $http.get('http://localhost:5000/api/hello').success(function(response, status) […]

在Node / Express上启用CORS不起作用

我花了几个小时试图弄清楚这一点… app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', "*"); res.header('Access-Control-Allow-Methods','GET,PUT,POST,DELETE'); res.header('Access-Control-Allow-Headers', 'Content-Type'); next(); }); app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); next(); }); 没有为我工作…我有这个在我的服务器app.js在需求在顶部之后。 还尝试了npm安装cors和app.use(cors())。 也没有工作。 为什么我会遇到这个问题? 我正在使用快速生成器(npm install express-generator)

如何使用提取与application / json的内容types发布

我有一个响应应用程序,执行一个API的调用,如下所示: postForm(state) { var formData = state.formData; return fetch('http://localhost:3000/api/V0.1/formSubmit', {method: 'POST', headers: {"Content-Type": "application/json"}, body: JSON.stringify(formData)}) .then((response) => response.json()) .then((responseJson) => { console.log(responseJson); return null; }) .catch((error) => { console.error(error); }); } 但是,由于规范指出application / json是非标准内容types,CORS会阻止它。 但是,我不知道如何修改我的获取调用来执行所需的飞行前请求,让它允许application / json。 API调用是: app.post("/api/v0.1/formSubmit", function(req, res) { res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); res.setHeader('Access-Control-Allow-Headers', '*'); var […]

Express CORS不起作用

我刚开始使用我的nodejs express模板购买cors不工作。 我用npm install cors –save 这里是文件: var express = require('express'); var cors = require('cors'); var app = express(); app.use(cors()); var corsOptions = { origin: 'https://example.com/', optionsSuccessStatus: 200 }; app.get('/', cors(corsOptions), function(req, res, next) { res.json({ message: 'hooray! welcome to our api!' }); }); app.get('/tt', function(req, res, next) { res.json({ message: 'hooray! welcome to our […]