Tag: cors

CORS错误:请求标头字段预检响应中的Access-Control-Allow-Headers不允许授权

我试图从一个本地主机端口发送请求到另一个。 我在前端使用angularjs,在后端使用angularjs 。 既然是CORS请求,在node.js中,我正在使用 res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH'); res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization'); 并在angular.js服务文件中,我正在使用 return { getValues: $resource(endpoint + '/admin/getvalues', null, { 'get': { method: 'GET', headers:{'Authorization':'Bearer'+' '+ $localStorage.token} } }), } 我收到以下错误 请求标头字段预检响应中的Access-Control-Allow-Headers不允许授权。 请帮忙!

在CORS呼叫之后,Express Session不会持久

TL; DR: 在Express,Express-Session和Express-Cors之间的骨干应用程序和Node.js服务器之间执行跨多个API的持久会话不能成功。 看起来每次通话之后会话都会重新初始化/丢失。 长版本: 我有一个运行在localhost:3000上的客户端Backbone / React / Flux应用程序,在运行在localhost:4242上的Node.js服务器上执行以下调用: Http调用 POST http:// localhost:4242 / api / session RESPONSE HEADERS Content-Type application/json; charset=utf-8 Set-Cookie connect.sid=s%3AFeNYY5GQGvkyRvOym7DhysprePaQr7xP.BrxOPP56k9pDpxQPvwjDFaxkEYoHU%2FAEtNUIXGltqjI; Domain=http://localhost:3000; Path=/ Vary Origin X-Powered-By Express access-control-allow-credentials true access-control-allow-orign http://localhost:3000 […] REQUEST HEADERS Accept application/json, text/javascript, */*; q=0.01 Content-Type application/json; charset=utf-8 Cookie connect.sid=s%3AjP4iADZvRnDHbJcCE8H81Zy6TIehj9BJ.eDOTw44GcHqq8i2dslBGd43tXMQ22ENl31fRizdC8iA Host localhost:4242 Origin http://localhost:3000 Referer http://localhost:3000/login […] […]

使用CORS XHR时,浏览器不发送cookies

编辑 – 使用Chrome浏览器查看cookies,看起来无论cookie的过期值是什么,浏览器都会将其设置为会话cookie,并根据请求删除它。 我正在使用Node.js和Express为我正在教授的课程构build一个CORS示例。 但是,尽pipe从服务器设置了Cookie,但在下列请求中不会将它们发送回服务器。 这几乎意味着我不能使用任何微不足道的会话pipe理器。 任何想法,我在这里失踪? 为什么浏览器不会将由域设置的Cookie发送回该域? 不应该自动发生? 编辑 – 一些代码示例:设置XHR请求: var xhr = new XMLHttpRequest(); xhr.open(method, url, true); xhr.widthCredentials = true; xhr.onreadystatechange = function(res){ if (xhr.readyState == 4){ cb(res,xhr); } }; xhr.setRequestHeader("Content-Type",'application/json'); xhr.setRequestHeader('Accept','application/json'); xhr.send(JSON.encode({param:some_param})); 服务器: function allowCrossDomain(req,res,next) { res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', req.headers.origin); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type,Accept,X-Requested-With'); if (req.method!='OPTIONS') return next(); res.send(204); } //while […]

仅在Chrome中使用超慢速预检选项

最近我一直在苦苦挣扎,只是在Chrome中出现了一个非常奇怪的问题:由于我的API(NodeJS)位于不同的子域,所以我需要使用CORS从我的前端(EmberJS)到达它。 它工作得很好,但我经常(95%的时间)有很慢的OPTIONS查询,拖延任何API调用大约3秒。 大部分时间都是下载一个空的内容: 当我在使用类似体系结构的另一个网站上尝试这个function时遇到了同样的问题。 我尝试了一些其他的事情: 我一直在使用Firefox和Safari来尝试这个,并没有得到任何延迟。 我一直试图在本地或在生产,试验相同的延迟。 我一直在使用隐身模式(没有扩展名),我有完全相同的问题。 我们正在使用CORS后端的NodeJS。 现在,我不知道问题是在Chrome 60,NodeJS,CORS包还是EmberJS + jQuery。 任何人都经历过这个?

Socket.io + Node.js跨域请求被阻止

我正在使用node和socket.io来编写一个聊天应用程序。 它在Chrome上工作正常,但Mozilla提供错误以启用跨源请求。 跨源请求被阻止:相同来源策略不允许阅读http://waleedahmad.kd.io:3000/socket.io/?EIO=2&transport=polling&t=1401964309289-2&sid=1OyDavRDf4WErI-VAAAI的远程资源。 这可以通过将资源移动到相同的域或启用CORS来解决。 这是我的代码来启动节点服务器。 var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server), path = require('path'); server.listen(3000); app.get('/', function(req, res) { res.sendfile(__dirname + '/public/index.html'); }); 在客户端。 var socket = io.connect('//waleedahmad.kd.io:3000/'); HTML页面上的脚本标记。 <script type="text/javascript" src="//waleedahmad.kd.io:3000/socket.io/socket.io.js"></script> 我也在应用程序根目录中使用.htaccess文件。 (waleedahmad.kd.io/node)。 Header add Access-Control-Allow-Origin "*" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "PUT, […]

跨域事件源

我正在尝试使用nodejs创build一个EventSource服务器,这将服务器请求跨域。 我发回Access-Control-Allow-Origin标题,但浏览器(也不是Chrome或Opera)不让我连接。 有我送回的标题: this._response.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true' }); 我怎样才能正确地做到这一点? 问候

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 看起来不错? 所以它应该工作,对吧? […]

我如何将CORS-Headers添加到静态连接服务器?

我正在写一个演示Web服务器提供静态HTML,CSS和JavaScript。 服务器看起来像 (function () { "use strict"; var http = require("http"); var connect = require('connect'); var app = connect() .use(connect.logger('dev')) .use(connect.static('home')); var server = http.createServer(app); server.listen(9999, function () { console.log('server is listening'); }); })(); 我的客户端JavaScript使ajax调用不同的服务器。 我如何添加 Access-Control-Allow-Origin: http://example.com 给我的服务器响应,这样客户端的JavaScript可以做ajax调用?

Angular / Node / Express / Passport跨域问题 – 启用CORS Passport Facebook身份validation

尝试使用Passport在NodeJS / Express中使用Facebook对用户进行身份validation时,已经有两天,一百万次尝试启用CORS。 我在Chrome上遇到的错误是这样的: XMLHttpRequest cannot load https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%…%3A8080%2Fauth%2Ffacebook%2Fcallback&scope=email&client_id=598171076960591. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 我使用的路线非常简单: // ===================================== // FACEBOOK ROUTES ===================== // ===================================== // route for facebook authentication and login app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); // handle the callback after facebook has authenticated […]

XMLHttpRequest无法加载https:// www。 .com /

我有一个Grunt进程启动一个express.js服务器的实例。 直到现在,它开始提供一个空白页面,并且在Chrome(最新版本)的开发者控制台的错误日志中出现以下内容: XMLHttpRequest无法加载https:// www。[website] .com /否请求的资源上存在“Access-Control-Allow-Origin”标头。 原因' http:// localhost:4300 '因此不被允许访问。 什么阻止我访问页面?