Tag: cors

Angular / Node / Express / Passport – 连接到facebook(CORS)时的问题

我试图在我的NodeJs服务器上使用Facebook身份validation。 我来到http://scotch.io/的教程,并使用REST客户端(邮递员等)在本地工作。 为了改善UI,我使用了Angular JS作为前端。 但是当我调用一个http.get到我在NodeJs后台给出的特定路由时,我在chome和firefox中得到了以下错误: XMLHttpRequest无法加载https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http% … 0%2Fapi%2Fauth%2Ffacebook%2Fcallback&scope = email&client_id = 3000000000006。 请求的资源上没有“Access-Control-Allow-Origin”标题。 因此不允许访问原产地“localhost:8080”。 我已经尝试了几个解决scheme在StackOverflow,但它仍然无法正常工作…我的NodeJs使用Express 4. *和一个CORS中间件。 对于Angular,我发现了几种启用CORS的方法,目前为止还没有任何工作。 我希望你能帮助我:D在此先感谢!

如何在OpenShift的Sails.js中启用CORS

我试图在SailsJS v0.9.15中启用CORS …如果我在cors.js中设置“allRoutes:true”,但是仍然收到与CORS有关的错误,这并没有帮助。 为什么这不起作用? 据此,这应该是足够的… https://github.com/balderdashy/sails-docs/blob/master/todo/config.cors.md Firefox中的错误:“跨域请求被阻止:同源策略不允许读取www.domain.com上的远程资源,这可以通过将资源移动到同一个域或启用CORS来解决。 在Chrome中出错:“Access-Control-Allow-Origin”标题包含无效值'null'。因此Origin'www.domain.com'不允许访问。 这是一个错误? Sails.js(REST api)在Openshift上托pipe,这可能是一个问题吗? 感谢帮助…

为什么我的Express.js后端的CORS设置不起作用?

我正在为我的Express.js后端设置CORS。 由于我有一个本地和远程版本的前端我想允许一些URLS访问到后端。 我曾尝试使用“*”和var cors = require('cors') app.use(cors())但我得到 当凭证标志为真时,不能在Access-Control-Allow-Origin中使用通配符。 我曾尝试使用cors()的dynamic设置,但没有示例如何使用Express的路线。 我现在试图创build我自己的白名单检查下面的代码,但现在我越来越 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:5000 '因此不被允许访问。 该响应具有HTTP状态码500。 我究竟做错了什么? 更新:它看起来像if语句阻止添加标题,所以我试图删除它,看看res.header('Access-Control-Allow-Origin', req.get("origin")); 现在正在给我 凭证标志是'true',但是'Access-Control-Allow-Credentials'标头是''。 允许凭证必须是“真实的”。 var whiteList = { "http://localhost:5000": true, "https://example-url.herokuapp.com": true }; var allowCrossDomain = function(req, res, next) { if(whiteList[req.get('Origin')]){ res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', req.get('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, Origin, Accept'); next(); } }; […]

如何在API和angular度客户端之间启用CORS

我们一直在试图build立CORS几天而没有成功。 因此,非常感谢知道如何做到一劳永逸。 我们想要做的是: API服务器(当然只是服务器的一部分): // Config app.configure(function () { app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()) app.use(express.methodOverride()); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); app.use(express.static(path.join(application_root, "public"))); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); app.use(app.router); }); angular度应用服务器(也只是部分设置): server.use(gzippo.staticGzip(__dirname + '/public')); server.set('view engine', 'ejs'); // Environment var ENV = process.argv[2] || 'dev'; // prod […]

仅在angular度资源请求上缺lessCORS头

我有一个工作节点/后端运行在本地主机上。 我正在构build一个需要从goodreads API中获取数据的项目应用程序。 当我执行请求时,我得到: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.goodreads.com/book/title.json?author=Arthur+Conan+Doyle&key=[my_key]&title=Hound+of+the+Baskervilles. (Reason: CORS header 'Access-Control-Allow-Origin' missing).1 <unknown> 服务器端,一切工作正常。 我已经启用了CORS,当检查标题时,在检查Firefox和Chrome开发工具中的标题后,来自我的服务器的所有内容都可以使用“Access-Control-Allow-Origin”。 当我通过$资源发出请求时,“Allow-Access …”在我的头文件中不存在。 这里是资源的代码: .factory('goodReads', function($resource) { return $resource('https://www.goodreads.com/book/title.json'); }) .controller('AddBookSelectorController', function($resource, goodReads) { this.fetch = function() { var key = '[my_key]'; var data = goodReads.query({author: 'Arthur Conan Doyle', key: […]

Uncaught(承诺)TypeError:无法获取和Cors错误

从数据库获取数据有问题。 我正在尽力解释这个问题。 1.如果我在下面的代码里面留下“模式”:“no-cors”,那么我可以用邮递员从服务器取回数据,但是不能从我自己的服务器上取回数据。 认为它必须是我的客户端错误 当我删除“模式”:“no-cors”,那么我得到2错误: – 获取API无法加载http:// localhost:3000 / 。 在预检响应中,访问控制允许标题不允许请求标头字段访问控制允许来源。 -Uncaught(在promise中)TypeError:无法获取 “快速浏览”build议将“模式”设置为:“解决这个错误”的“非Cors”,但是这并不是一件正确的事情。 所以我想也许有人build议如何解决这个问题。 真的很希望我很清楚,但是我很确定这里没有给出明确的解释:S function send(){ var myVar = {"id" : 1}; console.log("tuleb siia", document.getElementById('saada').value); fetch("http://localhost:3000", { method: "POST", headers: { "Access-Control-Allow-Origin": "*", "Content-Type": "text/plain" },//"mode" : "no-cors", body: JSON.stringify(myVar) //body: {"id" : document.getElementById('saada').value} }).then(function(muutuja){ document.getElementById('väljund').innerHTML = JSON.stringify(muutuja); }); }

Chrome浏览器/火狐浏览器发送两个邮件正好5秒钟,只有一个调用来获取Nodejs 8.0.0服务器

注:这不是预检选项,它不是favicon或任何其他类似的。 这实际上是2 POSTS。 下面有一个截图,更清晰地显示出来。 我的规格/版本: macOS Sierra版本10.12.3 Chrome版本61.0.3128.0(官方版本)dev(64位) 节点v8.0.0 我有一个服务器,使用setTimeout等待10秒后才响应。 我有一个前端,使单个POST到服务器。 使用wireshark,我可以看到浏览器实际上做了2个POST,第二个在t + 5s。 服务器看到这两个POST并对两者都响应。 前端只能得到第二个POST的结果。 在下面的示例中,您将看到,获取实际需要15秒才能完成,而不是您希望从服务器中超时的10秒。 该呼叫是CORS,只有当服务器花费超过5秒的时间来响应时才会发生。 这里发生了什么,我该如何阻止它呢? 这是一个最小的复制: server.js(与节点一起运行) var http = require("http"); // A counter for the requests var counter = 0; var server = http.createServer(function(request, response) { // Closure to prevent the request number from changing with the counter. (function(requestNumber) { […]

Socket.io – Access-Control-Allow-Origin不允许的来源

我知道在这个话题上有一些讨论,但是我不能find我的问题的答案。 我在localhost:8020上的Aptana服务器上运行了一个网页。 在页面上的JavaScript正在击中我已经在本地主机上运行的节点服务器:1337。 这是节点代码: var io = require('socket.io'); var http = require('http'); var sys = require('sys'); var json = []; var server = http.createServer(function (req, res) { var headers = {}; headers["Access-Control-Allow-Origin"] = "*"; headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS"; headers["Access-Control-Allow-Credentials"] = true; headers["Access-Control-Max-Age"] = '86400'; // 24 hours headers["Access-Control-Allow-Headers"] = "X-Requested-With, Access-Control-Allow-Origin, X-HTTP-Method-Override, […]

允许CORS REST请求到express / node.js应用程序

我是node.js / express的新手。 我看到这篇文章( 允许CORS REST请求到Heroku上的Express / Node.js应用程序 ),但提议的解决scheme不起作用。 我只是打电话给mapquest API来获取一些数据来玩。 这里是我的server.js的一部分: var allowCrossDomain = 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) { console.log('hit options'); res.send(200); } else { next(); } }; app.configure(function(){ console.log('configuring app'); app.use(allowCrossDomain); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname + […]

CORS:预检通过,主要请求完成w / 200,但浏览器仍然有Origin错误

我正在向运行express的节点服务器发送CORS ajax请求。 在服务器日志和js控制台中,我都可以看到预检OPTIONS请求成功。 然后,主要的请求也成功的服务器和响应200和我认为是正确的标题。 但是,在Chrome中,networking标签会将后一个请求报告为“已取消”,并且不会接受或处理该响应: XMLHttpRequest无法加载http://myserver.com/upload 。 Access-Control-Allow-Origin不允许Origin http://mysite.com 。 以下是服务器日志,其中包含为请求和响应打印的标题: 76.79.201.210 – – [27/Jun/2013:23:23:17 +0000] "OPTIONS /upload HTTP/1.1" 204 0 "http://mysite.com/add" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36" START { host: 'localhost:5001', connection: 'close', 'content-length': '109587', origin: 'http://mysite.com', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, […]